在构建器设计模式中,
方法buildpart()
是工厂方法吗? (为了进行比较,抽象工厂是工厂方法的集合。)
为什么(不是)工厂方法?为了澄清起见,您还可以提供工厂方法的定义吗?
Gamma等人的“设计模式”中的buildpart()
示例是:
void StandardMazeBuilder::BuildMaze () {
_currentMaze = new Maze;
}
答案 0 :(得分:1)
工厂方法通常使用new
关键字创建一个具体的对象/产品,并返回。通常,工厂方法的名称以前缀create
开头。
在构建器模式的上下文中的buildpart()
方法可以创建一些对象,但是不返回。从Director的角度来看,它不需要接收通过buildpart()
方法创建的零件。导演只是想指示建造者按照需要的顺序制造零件,并最终获得最终产品。
简而言之,由于create
和build
之间的差异,buildpart()
方法不是工厂方法。