Donc, venant sur le sujet des usines, je me demande comment ils sont mis en place.Comment créez-vous vos usines?
D'où je suis, je peux voir 3 types d'usines:
All In One
Une usine qui contient essentiellement toutes les classes utilisées dans une application. On a l'impression d'avoir une usine pour avoir une usine et on ne se sent pas vraiment structuré.
Exemple (Où ClassA, classe B et ClassC ont rien en commun, sauf être dans la même application):
class Factory
{
public static function buildClassA()
public static function buildClassB()
public static function buildClassC()
}
Les exemples de code fournis sont en PHP. Cependant, cette question est agnostique.
intégré usine
Le prochain est le mélange dans des fonctions statiques avec les fonctions régulières afin de rendre les modèles de création spéciaux (voir this question)
Exemple:
class ClassA
{
public static function buildClass()
public function __construct()
}
Usine sur le côté
Le dernier que je peux penser est d'avoir une usine pour des classes individuelles, ou des ensembles individuels de classes. Cela semble juste variable pour être utilisé d'une manière uniforme.
Exemple (Où ClassA, B et C sont liés, et 1, 2 et 3 sont liés):
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()
}
Ma question est: Est-ce toutes ces mauvaises idées, sont l'un d'eux mauvais des idées? Existe-t-il d'autres façons de créer des usines? Certaines de ces idées sont-elles réellement bonnes? Qu'est-ce qu'un bon/meilleur moyen de créer des usines.
En ce qui concerne l'usine intégrée, si vous allez utiliser une fonction statique en tant qu'usine, le constructeur doit probablement être privé. – Duncan