Java 初始化从文件加载数据的类。是建筑商吗?
我是设计模式的新手Java 初始化从文件加载数据的类。是建筑商吗?,java,design-patterns,builder-pattern,Java,Design Patterns,Builder Pattern,我是设计模式的新手 我想创建一个类的实例,比如ClassA,并将它的一些字段设置为从配置文件读取的值 如果我将类的代码与使用值管理文件的代码区分开来,那么ClassA将成为一个纯粹的“业务逻辑”类 我想说这是一个构建器模式,因为构建器似乎不仅负责实例化,还负责初始化 但除此之外,构建器似乎专注于分步骤地打破创建过程,而在我的例子中,我只有一个(仍然是复合的)步骤 是否可以将其视为构建器模式?还是有什么不同?看起来更像工厂模式,而不是建筑商。这是因为只有一种方法可以完成所有工作。通常,构建器会有
我想创建一个类的实例,比如ClassA,并将它的一些字段设置为从配置文件读取的值
如果我将类的代码与使用值管理文件的代码区分开来,那么ClassA将成为一个纯粹的“业务逻辑”类
我想说这是一个构建器模式,因为构建器似乎不仅负责实例化,还负责初始化
但除此之外,构建器似乎专注于分步骤地打破创建过程,而在我的例子中,我只有一个(仍然是复合的)步骤
是否可以将其视为构建器模式?还是有什么不同?看起来更像工厂模式,而不是建筑商。这是因为只有一种方法可以完成所有工作。通常,构建器会有一组setter样式的方法,允许自定义正在构建的对象。看起来更像工厂模式,而不是构建器。这是因为只有一种方法可以完成所有工作。通常,构建器会有一组setter样式的方法,允许自定义正在构建的对象。无步骤-无 没有步骤-没有
对我来说就像一个工厂…对我来说就像一个工厂…我也想到了工厂模式,然后我迷失了方向,因为工厂方法模式似乎专注于与接口的不同具体实现的隔离。所有我没有的东西。我认为@gnat下面的评论解释得很好。我也想到了工厂模式,然后我迷失了方向,因为工厂方法模式似乎专注于与接口的不同具体实现的隔离。所有我没有的东西。我认为@gnat下面的评论很好地解释了这一点。另外,构建者通常会构建一个对象图。例如,包含页眉、页脚、标题和某些段落的文档。很好的例子:+1同样,构建器通常会构建对象图。例如,包含页眉、页脚、标题和某些段落的文档。很好的例子:+1
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
}
}
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