给定像这样的类层次结构: a package tree 有一个有助于创建对象的类是一个好主意吗? E.I.一个类,其方法对应于可以创建的每个类(方法equals()返回一个CompareCriteria,例如)。 我看到的优点是它会隐藏复杂的继承结构,并且依赖性会降低。
答案 0 :(得分:4)
对象创建模式包括Builder
,Factory
和Prototype
。维基百科有一个fairly detailed list。
答案 1 :(得分:2)
它们实际上是一种设计模式 - 创作模式。维基百科对这些模式类型有一个合理的描述 - 源于GoF书:
http://en.wikipedia.org/wiki/Creational_pattern
答案 2 :(得分:1)
对象创建有两种或三种模式。最常见的是工厂,它似乎适用于这种层次结构。我不记得其他的(也没有多少),但我认为另一个被称为原型。
如果你关心这些事情,请阅读有关设计模式的书。
答案 3 :(得分:1)
类层次没有说明需要工厂方法或任何其他专门的方法来创建对象。你想对所有这些课做什么?会难以使用吗?是否难以延长?
创建工厂或类似工具会改善情况吗?
如果你无法下定决心,请创建一些使用类的例子(请提供实际例子),然后重构那些使用你的工厂。
在练习之后,您应该能够自己做出决定。或者回过头来讨论一些更具体的问题。
答案 4 :(得分:0)
似乎并不十分复杂。您可能希望在选择之前研究如何进行单元测试 - 工厂可能会很难正确地注入模拟。
此外,我还没有看到其他人列出依赖注入 - 我也会查看DI工具包,因为它将解决单元测试问题以及与常见构建模式相关的其他一些问题。看起来你的一些课程建立在其他人的基础之上(就像你可能将它们结合起来解决问题一样),而且DI有很多帮助。