La diferencia entre el patrón de fábrica abstracto y el patrón prototipo en Java
La ventaja del patrón de fábrica es reducir el acoplamiento entre la fábrica y el producto, y colocar el proceso de construcción del producto específico en la clase de fábrica específica. Será mucho más conveniente expandir productos en el futuro. Solo necesita agregar una clase de fábrica y una clase de producto para agregar productos fácilmente sin modificar el código original. En una fábrica simple, si desea agregar un producto, debe modificar la clase de fábrica, agregar una rama if/else o agregar una rama case. El modelo de fábrica se ajusta al principio OCP (principio de apertura y cierre) en el desarrollo de software. y está abierto a extensiones. La modificación está cerrada.
Patrón de fábrica abstracto: siempre siento que este patrón es muy similar al patrón del constructor.
El patrón del método de fábrica proporciona un modelo jerárquico para un producto, mientras que el método de fábrica abstracto proporciona un modelo jerárquico para múltiples productos. Tenga en cuenta que aquí los múltiples productos específicos están acoplados entre sí. , Existe alguna conexión entre los productos proporcionados por la fábrica abstracta aquí.
Alguien hizo la siguiente comparación:
Patrón de método de fábrica: una clase de producto abstracta puede derivar múltiples clases de producto específicas.
Una clase de fábrica abstracta puede derivar múltiples clases de fábrica concretas.
Cada clase de fábrica concreta solo puede crear una instancia de una clase de producto concreta.
Patrón de fábrica abstracto: múltiples clases de productos abstractos, cada clase de producto abstracto puede derivar múltiples clases de productos específicos.
Una clase de fábrica abstracta puede derivar múltiples clases de fábrica concretas.
Cada clase de fábrica concreta puede crear múltiples instancias de clases de productos concretas.
Diferencia: el patrón del método de fábrica tiene solo una clase de producto abstracto, mientras que el patrón de fábrica abstracto tiene varias.
La clase de fábrica concreta del patrón de método de fábrica solo puede crear una instancia de la clase de producto específica, mientras que el patrón de fábrica abstracto puede crear múltiples instancias.