Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop DDD元素的确切关注点和责任_Oop_Object_Domain Driven Design_Aggregateroot - Fatal编程技术网

Oop DDD元素的确切关注点和责任

Oop DDD元素的确切关注点和责任,oop,object,domain-driven-design,aggregateroot,Oop,Object,Domain Driven Design,Aggregateroot,我看到了许多关于DDD的文章和Martin Fowler的书《企业应用程序体系结构模式》中描述的许多模式,但我需要stackoverflow开发专家的帮助来理解一些事情 什么是主要的(方法和功能)=应该包含在每个DDD组件(存储库、聚合根)中的关注点,以及它是否应该将其委托给其他对象 聚合根对象 例如,FaceBook,User是一个聚合根,它包含UserObject(您)、postObjects(您创建的帖子)、PictureObject的对象;“保持”这个词是否意味着它保持其内部状态?或者只

我看到了许多关于DDD的文章和Martin Fowler的书《企业应用程序体系结构模式》中描述的许多模式,但我需要stackoverflow开发专家的帮助来理解一些事情

什么是主要的(方法和功能)=应该包含在每个DDD组件(存储库、聚合根)中的关注点,以及它是否应该将其委托给其他对象

聚合根对象 例如,FaceBook,User是一个聚合根,它包含UserObject(您)、postObjects(您创建的帖子)、PictureObject的对象;“保持”这个词是否意味着它保持其内部状态?或者只是它有一个函数,可以将您引导到另一个存储库方法(例如,包括您的id)

原因如果聚合根将聚合对象保持在其内部状态,那么当在多个根中需要一个对象时会发生什么?(照片也属于照片画廊),,,grrrrrrr我很困惑

例如,请描述Facebook(或任何其他Web应用程序)域设计,以便像我这样的noob可以在专家开发人员和我们之间建立一种普遍存在的语言:)

如果聚合根目录在其内部 然后说明当一个对象需要在多个根中时会发生什么? (照片也属于照片画廊),,,grrrrrrr我很困惑

在DDD中,实体并不总是聚合的一部分。许多聚合根共享的某些实体是其自身聚合的根。它们有自己的存储库,就像任何聚合根一样。例如,在蓝皮书中,
Customer
Location
CarrierMovement
是共享实体,它们是它们自己聚合的根

请描述例如Facebook(或任何其他webapp)域 设计的目的是让像我这样的noob可以在它们之间建立一种无处不在的语言 专家开发人员和我们:)

DDD模式不能盲目地或同等地应用于任何应用程序,它们取决于您和您的团队如何查看域。例如,不应该仅仅因为模型中存在包含关系就使用聚合模式。您可以设计:
Customer
拥有
Invoice
,但您也可以(更可能)设计:
Invoice
引用了
Customer
。两者在DDD中均有效

您的设计应该真正反映应用程序的领域。它应该符合你的领域专家的观点。领域专家可以是你自己、你的客户或你雇佣的人,因为她是特定领域的专家(如:会计、医疗、银行等)。在您的团队中拥有领域专家是应用DDD的一个要求。如果您的域不够复杂,则不需要DDD