在Java内部或外部构建复杂对象?

时间:2015-08-17 20:47:13

标签: java design-patterns

我正在尝试使用Java中的最佳实践来解决以下问题:

我想在一个地方设置一个复杂的对象,以便其他客户端可以重用这个结构。这是一个例子以及我如何继续:

我的复杂对象属于" Ontology",这个对象包含许多参数,一旦实例化并填充,它就会被许多对象用作一种配置,通过使用它的getter。

我的Ontology.class

abstract class Ontology {
   List<Something1> param1;
   List<Something2> param2;
   ...

   protected void addParam1(){
      ...
   }

   ....

   abstract protected void setup();
}

保持复杂结构的方法:

public class SpecificOntology extend Ontology{          
   @Override
   protected void setup(){
       addParam1(new Something(...));
       ...
   }
}

客户:

 protected void something(){
     SpecificOntology o = new SpecificOntology();
     o.setup();

     install(o.getParam1(());
     ...  
 }

另一种解决方案可能是使Ontology不是抽象的,使其Adder公开并在类之外构建对象,但我不知道可以使用哪种模式?我知道建造者模式和工厂模式,但我不确定这是不是正确的地方。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果你想构建一个包含许多参数的对象,我首先想到的是Builder模式。