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

Building complex object inside or outside the class in Java?

我正在尝试获取 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 public 并在 class 之外构建对象,但我不知道哪种模式可能是用于那个?我知道构建器模式和工厂模式,但我不确定这是正确的地方。有什么想法吗?

如果要构建一个参数很多的对象,我第一个想到的就是Builder模式