【发布时间】:2020-07-18 22:21:13
【问题描述】:
我有一个Document 类,需要在保存到数据库之前获得外部授权。
可以创建authorize这样的方法吗...
class Document:
authorize(IExternalAuthorizator authorizator):
authorization_result = authorizator.authorize(this)
// update internal state with result...
然后在类似的用例或服务中使用它...
class UseCase:
execute(IDocumentRepository repo, IExternalAuthorizator authorizator):
doc = new Document()
doc.authorize(authorizator)
repo.save(doc)
或者我应该有这样的Document 类...
class Document:
authorize(AuthorizationResult result):
// update internal state with result...
然后是用例……
class UseCase:
execute(IDocumentRepository repo, IExternalAuthorizator authorizator):
doc = new Document()
result = authorizator.authorize(doc)
doc.authorize(result)
repo.save(doc)
还是没有,只有第三种选择?
有什么帮助吗?
【问题讨论】:
标签: domain-driven-design clean-architecture hexagonal-architecture