如何使这种设计更接近适当的DDD?
我已经读了几天DDD,并且需要有关此样本设计的帮助。当不允许域对象向应用程序层显示方法时,DDD的所有规则使我非常困惑应该如何构建任何内容。还有什么地方可以协调行为?不允许将存储库注入实体,因此实体本身必须在状态下工作。然后,一个实体需要从域中了解其他信息,但是其他实体对象也不被允许注入?这些事情中有些对我有意义,而另一些则没有。我还没有找到很好的例子来说明如何构建整个功能,因为每个例子都与订单和产品有关,一遍又一遍地重复其他例子。通过阅读示例,我学得最好,并且尝试使用到目前为止所获得的有关DDD的信息来构建功能。 我需要您的帮助来指出我做错了什么以及如何解决,最好是使用代码,因为在已经模糊定义所有内容的情况下,很难理解“我不会建议做X和Y”。如果我无法将一个实体注入另一个实体,则更容易了解如何正确地进行操作。 在我的示例中,有用户和主持人。主持人可以禁止用户,但有一条商业规则:每天仅3个。我尝试建立一个类图以显示关系(下面的代码): interface iUser { public function getUserId(); public function getUsername(); } class User implements iUser { protected $_id; protected $_username; public function __construct(UserId $user_id, Username $username) { $this->_id = $user_id; $this->_username = $username; } public function getUserId() { return $this->_id; } public function getUsername() { return $this->_username; } …