2014-06-06 61 views
2

我搜索得越多,我就越困惑。工厂设计模式是抽象工厂和工厂方法的超类吗?或者它是静态工厂的另一个名称?工厂方法设计模式中的工厂设计模式与目标c中的抽象工厂有什么区别?

+0

?这些名称不用于识别独特模式(我的意思是没有共同的协议)。 GoF例如标识工厂方法和抽象工厂设计模式。 –

+0

在objective-c中,类簇被用作抽象工厂。看到这个答案:http://stackoverflow.com/a/23094194/1059025 – quellish

回答

0

因此减少混淆:

工厂方法和抽象工厂是两个不同的唯一命名的设计模式。唯一名称对于从另一个名称中识别它们很重要。它们都属于对象创建设计模式类别(或类别)。虽然是创造性的设计模式,但它们是解决非常不同的对象创建相关问题的解决方案

名称“工厂设计模式”或“静态工厂”并不常用来表示独特的设计模式。一般来说,术语“工厂”被用来指代任何创建的对象(所以你可以谈论一个工厂类,工厂对象,工厂方法等,但清楚地知道,有一个名为“工厂法”的独特设计模式以及)。

而且,术语“静态工厂”可以公开地被用来谈论与具有即使被广泛接受的唯一模式不以该名称存在的对象造物责任的静态方法的类。

有没有权力指派名称的设计模式。只有一些设计模式变得流行,然后他们的名字被广泛用于引用它们。

没有得到普及设计模式仍然可以使用的名称,但其他人可能在不知不觉中使用相同的名称来指代不同的事情。所以名称“工厂设计模式”和“静态工厂”仍然对公众开放使用,因为他们喜欢,直到有人他们注册为你在工厂设计模式和静态工厂意味着什么商标:)