在构建器模式中,方法`buildpart()`是工厂方法吗?

时间:2019-06-08 19:22:24

标签: design-patterns builder factory-method

在构建器设计模式中,

enter image description here

方法buildpart()是工厂方法吗? (为了进行比较,抽象工厂是工厂方法的集合。)

为什么(不是)工厂方法?为了澄清起见,您还可以提供工厂方法的定义吗?

Gamma等人的“设计模式”中的buildpart()示例是:

void StandardMazeBuilder::BuildMaze  () {
_currentMaze  = new Maze;
}

1 个答案:

答案 0 :(得分:1)

工厂方法通常使用new关键字创建一个具体的对象/产品,并返回。通常,工厂方法的名称以前缀create开头。

在构建器模式的上下文中的buildpart()方法可以创建一些对象,但是不返回。从Director的角度来看,它不需要接收通过buildpart()方法创建的零件。导演只是想指示建造者按照需要的顺序制造零件,并最终获得最终产品。

简而言之,由于createbuild之间的差异,buildpart()方法不是工厂方法。