我应该为聚合中的每个对象创建一个单独的类,还是应该将对象作为单个聚合类的嵌套类?
答案 0 :(得分:2)
如果聚合对象是可分离的,即它们可以单独出现,也可以在聚合中出现,那么每个对象都有一个单独的类,并使用类型集合来表示聚合。
答案 1 :(得分:2)
这取决于对象与其包含的对象的紧密耦合程度。如果您有一个Person类,并且该人拥有零到多个电话号码,您通常希望PhoneNumber是一个单独的类,因为许多不同类型的对象可能有电话号码(例如企业,学校等) )。但是如果对象是自然紧密耦合的东西,例如Person对象可能有Toes,那么内部类可能有意义。
您可能想要问自己的一些问题是: 1.聚合对象是否需要访问包含类的私有部分?如果是这样,内部阶级是一个不错的选择。 2.聚合对象是否总是属于一个对象,它所属的对象永远不会改变?如果没有,那么你可能不想要一个内部类。 3.聚合对象在聚合对象的上下文之外是否有意义?如果是这样,它可能不应该是一个内部阶级。
如果有疑问,通常最好使用单独定义的类,如果没有其他原因它会保持耦合并且源文件更小。
也不是说它不一定是一个或两个问题。您始终可以定义单独的类或接口,然后在聚合类中继承/实现它。
答案 2 :(得分:1)
不确定MVC与域聚合有什么关系,因为可以在没有UI的情况下使用后者。
我通常更喜欢将聚合的各个部分放在一起,因为这些部分可以自己具有商业意义。当必须在内部类之前加载外部类或者不能使内部类公开时,嵌套类才有意义(至少这些内容适用于Java)。