Итак, что касается вопроса о фабриках, мне интересно, как они устроены.
С того места, где я стою, я вижу 3 типа фабрик:
Все в одном
Фабрика, которая в основном содержит все классы, используемые в приложении. Такое ощущение, что это просто фабрика ради фабрики, и на самом деле она не чувствует себя структурированной.
Пример (где ClassA, Class B и ClassC не имеют ничего общего, кроме того, что находятся в одном приложении) :
class Factory
{
public static function buildClassA()
public static function buildClassB()
public static function buildClassC()
}
Примеры кода приведены на PHP. Однако этот вопрос не зависит от языка.
Встроенный завод
Следующий - смешивание статических функций с обычными функциями для создания специальных шаблонов создания (см. этот вопрос )
Пример:
class ClassA
{
public static function buildClass()
public function __construct()
}
Заводская установка
Последнее, о чем я могу думать, - это фабрика для отдельных классов или отдельных наборов классов. Это просто переменная, которая будет использоваться единообразно.
Пример (где класс A, 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()
}
Мой вопрос: все ли это плохие идеи, являются ли они какими-то плохими идеями? Есть ли другие способы создания фабрик? Любая из этих действительно хороших идей? Что такое хороший / лучший способ создать фабрики.