领域模型的建模有时候是很复杂的,大量对象之间构成复杂的关系网,而一般这些领域对象都是存储在数据库里,所以对象的建立保存就会变得比较复杂。
Lazy Load是一个缓解这个问题的一个办法,但是不是所有场合都适用。
问题的解决还是应该回到领域模型的建立上来,当定义对象时,要对不同的关注点进行分离。当对象之间有复杂的关系网时,并不是相关对象的网络要一次的建立好。可以加一些对象的键来分离对象模型,利用这些键可以进一步构建对象关系网。
比如,A中有B,C,B中有D,E,C中有F,并不需要一次构建起A的整个对象,有可能用一些键进行一些划分,例如A中有B,C,B中不直接引用D,E,而且构建KeyOfD,KeyOfE。这种方法和Lazy Load有一定相似之处,都是暂时不用的对象先不急着构建。从而可以有一定程度的简化模型,不至于一个对象变得很臃肿。
Lazy Load是一个缓解这个问题的一个办法,但是不是所有场合都适用。
问题的解决还是应该回到领域模型的建立上来,当定义对象时,要对不同的关注点进行分离。当对象之间有复杂的关系网时,并不是相关对象的网络要一次的建立好。可以加一些对象的键来分离对象模型,利用这些键可以进一步构建对象关系网。
比如,A中有B,C,B中有D,E,C中有F,并不需要一次构建起A的整个对象,有可能用一些键进行一些划分,例如A中有B,C,B中不直接引用D,E,而且构建KeyOfD,KeyOfE。这种方法和Lazy Load有一定相似之处,都是暂时不用的对象先不急着构建。从而可以有一定程度的简化模型,不至于一个对象变得很臃肿。