|
|
1
1
这将导致设置childs parent属性将调用父方法,而所有其他逻辑都可以放在这些方法中。 应收账 |
|
|
2
1
只需在parent属性的set accessor中编写将子级添加到父集合的逻辑。 |
|
|
3
1
也许有一种更聪明的方法可以做到这一点,但最终您只需要确保设置父/子关系的每种方法都检查其他方法(即添加子检查以查看父属性是否已设置,以及设置父属性检查以确保父项包含子项)。
在删除子级之前,我更改了\u Parent的值,因为子级。父级否则将从Parent.Add/RemoveChild代码。 |
|
|
4
0
我将实现我自己的ISet,并在其中实现父级跟踪。使用常规的HashSet来完成存储对象的工作,但是在类中做一些额外的工作。
但是,这并没有实现您提到的一件事:“如果child有以前的父级,那么该父级的Children集合不再包含child”,因为您还说过“某些实体将具有多个子集合”。
|
|
|
5
0
我不能给出一个好的代码答案,因为我不理解该域的语义。
当parent是children的聚合根时,我将实现如下所示向父级添加一个新的子级:
这个答案用一行代码概括:“对于应用程序中的所有状态操作,您需要一个具有名称的方法来说明它的作用。” 我看到你的一个规格有问题:只有父级是聚合根。在这种情况下,如果没有父对象,就永远不会使用子对象。这使得双向关系毫无用处,因为当您访问父对象的子对象时,您已经知道父对象。在DDD中,双向关系很难管理,所以最好的解决方案就是避免它们。我知道在使用NHibernate时有几个原因不能避免它们。 下面的代码具有双向关系,并使用内部帮助程序方法解决域处于临时无效状态的问题。内部方法只能从域程序集调用,并且不对外公开。我不太喜欢这种方法,但这是我认为最糟糕的解决方案。
|
|
|
5rod · 编写python程序来解决特定问题? 2 年前 |
|
|
yazumin · 嵌套在集合中的映射列表 2 年前 |
|
|
Ama · 如何在Python集合理解中根据布尔语句添加元素对? 2 年前 |
|
|
petem · 使用图像作为为Julia集着色的轨道陷阱 2 年前 |
|
|
user4202236 · java中的拆分集 2 年前 |
|
|
Cesar Justo · 如何将列表的值修改为java流? 2 年前 |