Definición básica
El patrón del método de fábrica define una interfaz para crear objetos, pero la subclase determina qué clase instanciar. El patrón del método de fábrica difiere la creación de instancias en subclases.
Estructura del patrón
Producto: Producto abstracto. Todos los productos deben implementar esta interfaz común, para que las clases que usan estos productos puedan hacer referencia a esta interfaz.
ConcreteProduct: productos específicos.
Creador: Fábrica abstracta. Implementa todos los métodos de manipulación de productos, pero no implementa los métodos de fábrica. Todas las subclases de Creator deben implementar el método factoryMethod ().
ConcreteCreator: fábrica de hormigón. La fábrica real que fabrica el producto. Es responsable de crear uno o más productos específicos.
Modo de realización:
Producto Resumen Producto
Producto de hormigón
Clase de fábrica abstracta de fábrica
ConcreteFactory
Clase de prueba
Resultado de ejecución
09: 46: 41.447 [principal] INFOcom.yanyuan.gof.build.factory.v2.HuaweiPhone-Huawei teléfono móvil para marcar Diao Chan
09: 46: 41.463 [principal] INFOcom.yanyuan.gof.build.factory.v2.IPhone-iPhone llamadas telefónicas Xiaoqiao
Pros y contras
Ventaja
En el método de fábrica, el usuario solo necesita conocer la fábrica específica del producto deseado, y no necesita relacionarse con el proceso de creación específico, o incluso el nombre de la clase de producto específica.
Al agregar nuevos productos al sistema, solo necesitamos agregar una categoría de producto específica y una fábrica de implementación, sin ninguna modificación a la fábrica original, que cumple con el "principio de apertura y cierre"
Desventajas
Cada vez que agrega un producto, necesita agregar una clase y un objeto específicos para realizar la fábrica. El número de clases en el sistema aumentará exponencialmente, lo que aumenta la complejidad del sistema hasta cierto punto, y también aumenta la dependencia de las clases específicas del sistema.
Resumen
El modelo del método de fábrica cumple totalmente con el "principio de apertura y cierre"
El patrón de método de fábrica utiliza la herencia para delegar objetos en subclases e implementar métodos de fábrica a través de subclases para crear objetos.
En el patrón de método de fábrica, el creador generalmente contiene un código de producto que depende de la abstracción, y estos productos abstractos son creados por subclases. El creador no necesita saber qué producto específico hacer