Tengo muchas fábricas (abstractas) y generalmente se implementan como singletons.fábricas "Singleton", ¿está bien o mal?
Por lo general, para la comodidad de no tener que pasar por capas que realmente no tienen nada que ver con el uso o el conocimiento de estas fábricas.
mayoría de las veces sólo tengo que tomar una decisión en el arranque de los cuales implementación de fábrica el resto del programa de código, tal vez a través de una cierta configuración
se ve, por ejemplo, como
abstract class ColumnCalculationFactory {
private static ColumnCalculationFactory factory;
public static void SetFactory(ColumnCalculationFactory f) {
factory = f;
}
public static void Factory() {
return factory;
}
public IPercentCalculation CreatePercentCalculation();
public IAverageCalculation CreateAverageCalculation();
....
}
calle detrás olor hacer sobre esto, pero no estoy seguro de lo que - es tal vez más de un mundial disuised que un producto único. No es realmente realmente tener que ser una sola fábrica creando ColumnCalculations, aunque mis programas no necesitan más.
¿Esto se considera mejor practuce? ¿Debería rellenarlos en alguna clase de AppContext (semi) global? ¿Algo más (no estoy listo para cambiar a un contenedor de IoC más grande, o spring.net aún por cierto)?
sin embargo, dado el público expuesto SetFactory no hay garantía de que alguien no pueda cambiar más lío con la fábrica, por lo general parezco configurar la fábrica solo en el arranque, basado en una configuración o inicial inicial. – leeeroy
luego caes presa del inconveniente de los singletons ... son singletons. – coppro