2009-01-17 18 views

回答

2

这取决于对象和它所包含的对象有多紧密耦合。如果您有一个Person类,并且该人拥有零至多个电话号码,则通常希望PhoneNumber成为一个单独的类,因为许多不同类型的对象都可能具有电话号码(例如,企业,学校等)。 )。但是,如果对象是自然而然地紧密结合的东西,例如Person对象可以有脚趾,那么内部类可能是有意义的。

您可能想问自己的一些问题是: 1.聚合对象是否需要访问包含类的私有片段?如果是这样,一个内部类是一个很好的选择。 2.聚合对象是否总是只属于一个对象,并且它所属的对象从不改变?如果不是,那么你可能不想要一个内部类。 3.聚合对象是否在聚合对象的上下文之外有意义?如果是这样,它可能不应该是一个内部类。

如果有疑问,通常最好使用单独定义的类,如果没有其他原因会导致耦合关闭并缩小源文件。

也并不是说它不一定是一个无论是或事。您始终可以定义一个单独的类或接口,然后在聚合类中进行子类化/实现。

2

如果聚集的对象是可分离的,即它们可能单独出现,也可能出现在聚合中,那么每个对象都有一个单独的类,并使用类型化的集合来表示聚集。

1

不确定MVC与域聚合有什么关系,因为可以在没有UI的情况下使用后者。

我通常更喜欢将聚合的各个部分分开,因为这些部分可以具有独立的商业含义。当外部类必须在内部类之前加载或无法使内部类公开(至少这些内容适用于Java)时,嵌套类才有意义。