从文件初始化类加载数据。它是建筑师吗?

时间:2011-09-13 20:05:53

标签: java design-patterns builder-pattern

我是设计模式的新手。
我想创建一个类的实例,比如ClassA,并将其一些字段设置为从配置文件中读取的值。
如果我从使用值管理文件的代码中保持类的代码,那么ClassA就变成了纯粹的“业务逻辑”类。

 class ClassA {
    boolean config1;
    String originDB;
    String destDB;
    //other fields not initialized at the construction time
  }

  class ClassAFactory {
    boolean config1;
    String originDB;
    String destDB;        

    public ClassAFactory {
      //constructor of the class factory
      //load config values from file
    }

    public ClassA newInstance() {
     //create a new instance of ClassA and config fields config1, originDB, destDB
    }

  }

我会说这是一个构建器模式,因为构建器似乎只关注“不仅是实例化”而是初始化。
但除此之外,建设者似乎专注于逐步打破创建过程,而在我的情况下,我只有一个(复合)步骤。

可以被视为建筑师模式吗?或者它有什么不同?

2 个答案:

答案 0 :(得分:2)

没有步骤 - 没有Builder

    ClassA a = ClassABuilder
            .config(config1)
            .originDB(originDB)
            .destDB(destDB)
            .build();
    // above reads a Builder to me and hopefully to any reader
    //   note above allows to swap, add, remove particular steps


    ClassA a = ClassAFactory.newInstance();
    // above reads Factory to me and hopefully to any reader
    //   note for reader, it's a one-step thing

答案 1 :(得分:1)

看起来更像Factory模式而不是Builder。这是因为只有一种方法可以完成所有工作。通常,构建器将具有一组setter样式方法,这些方法允许自定义正在构建的对象。