Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 什么';在wikipedia工厂方法模式示例中使用模板方法的好处是什么?_Design Patterns_Factory Method - Fatal编程技术网

Design patterns 什么';在wikipedia工厂方法模式示例中使用模板方法的好处是什么?

Design patterns 什么';在wikipedia工厂方法模式示例中使用模板方法的好处是什么?,design-patterns,factory-method,Design Patterns,Factory Method,包含以下示例: /*与Factory几乎相同,只需额外曝光即可使用创建的方法执行某些操作*/ 公共抽象类ProductAbstractFactory { 受保护的抽象IPProduct MakeProduct(); public IPProduct GetObject()//工厂方法的实现。 { 返回此.MakeProduct(); } } 公共类PhoneConcreteFactory:ProductAbstractFactory { 受保护的覆盖IPProduct MakeProduct()

包含以下示例:

/*与Factory几乎相同,只需额外曝光即可使用创建的方法执行某些操作*/
公共抽象类ProductAbstractFactory
{
受保护的抽象IPProduct MakeProduct();
public IPProduct GetObject()//工厂方法的实现。
{
返回此.MakeProduct();
}
}
公共类PhoneConcreteFactory:ProductAbstractFactory
{
受保护的覆盖IPProduct MakeProduct()
{
i产品产品=新手机();
//在得到对象后,对对象进行处理。
产品定价(20.30);
退货产品;
}
}
其中也使用了模板方法模式(
GetObject
调用abstract
MakeProduct
)。在这种(特定的)情况下,我不会这样做,因为模板方法不包含任何“周围”代码,在派生类中使用重写将
GetObject
抽象就足够了

我在这里监督什么吗?
或者我的假设是正确的,这个例子并不像演示那样简单?

为了回答标题问题,工厂方法模式是模板方法模式的一种特殊化。换句话说,根据定义,所有工厂方法都是模板方法。

我认为你的假设是正确的。我发现Wikipedia对于一般的设计模式来说是一个非常贫乏的资源。特别是关于工厂模式,请查看。