【发布时间】:2010-02-02 01:05:58
【问题描述】:
所以,谈到工厂这个主题,我想知道它们是如何设置的。
从我站的地方,我可以看到三种类型的工厂:
一体机
基本上包含应用程序中使用的所有类的工厂。感觉就是为了建厂而建厂,并没有真正的结构化的感觉。
示例(其中ClassA、Class B和ClassC除了在同一个App中没有任何共同点):
class Factory
{
public static function buildClassA()
public static function buildClassB()
public static function buildClassC()
}
提供的代码示例使用 PHP。但是,这个问题与语言无关。
内置工厂
下一个是将静态函数与常规函数混合以形成特殊的创建模式(参见this question)
例子:
class ClassA
{
public static function buildClass()
public function __construct()
}
工厂现场
我能想到的最后一个是为单个类或单个类集创建一个工厂。这似乎只是可变地以统一的方式使用。
示例(其中 ClassA、B、C 相关,1、2、3 相关):
class FactoryAlpha
{
public static function buildClassA()
public static function buildClassB()
public static function buildClassC()
}
class FactoryNumeric
{
public static function buildClass1()
public static function buildClass2()
public static function buildClass3()
}
我的问题是:所有这些都是坏主意吗?它们中的任何一个都是坏主意吗?还有其他创建工厂的方法吗?这些真的是好主意吗?什么是创建工厂的好/最佳方式。
【问题讨论】:
-
关于内置工厂,如果你打算使用静态函数作为工厂,构造函数应该是私有的。
标签: language-agnostic oop factory