我是设计模式的新手。
我想创建一个类的实例,比如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
}
}
我会说这是一个构建器模式,因为构建器似乎只关注“不仅是实例化”而是初始化。
但除此之外,建设者似乎专注于逐步打破创建过程,而在我的情况下,我只有一个(复合)步骤。
可以被视为建筑师模式吗?或者它有什么不同?
答案 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样式方法,这些方法允许自定义正在构建的对象。