En la programación de programación orientada a objetos, nuestra operación más común es un objeto nuevo, pero en el proceso de crear un nuevo objeto, habrá algunos problemas, como debemos prestar atención a los detalles de implementación de la creación de un nuevo objeto, inicializar algunos parámetros necesarios, etc. Esto nos hará centrarnos más en la creación de objetos en lugar de la implementación lógica del programa, que deleita seriamente nuestro desarrollo de programas. La aparición de patrones de fábrica y patrones de fábrica abstractos resuelve perfectamente este problema, lo que nos permite no preocuparnos por la creación de objetos, sino centrarnos más en la implementación de los negocios.
Características:
1. Los programadores crean objetos directamente a través de métodos de fábrica y ya no prestan atención a los detalles de la creación de objetos.
2. Ocultar los detalles de implementación del objeto también es propicio para la seguridad del programa.
3. Reduzca el título de acoplamiento del programa.
Aplicaciones en desarrollo de nivel empresarial y marcos comunes:
SessionFactory, etc. en hibernado
Clasificación del modelo de fábrica:
El modelo de fábrica simple, la forma más utilizada en el desarrollo del programa, el código específico es el siguiente:
Public Class Demo { /*** La clase de demostración es nuestra clase de operación habitual. En esta clase, no tenemos que preocuparnos por los detalles de implementación de la creación de automóviles*/ public static void main (string [] args) {car car = carfactory.createCar ("dz"); car.run (); Coche coche2 = carfactory.createCar ("at"); car2.run (); }} interface Car {public void run ();} class dz implementa automóvil {public void run () {System.out.println ("Volkswagen se está ejecutando"); }} Clase en Implements Car {public void run () {System.out.println ("Alto Car está ejecutando"); }} class CarFactory {public static Car createCar (tipo de cadena) {if ("dz" .equals (type)) {system.out.println ("creó un automóvil volkswagen"); devolver nuevo dz (); } if ("at" .equals (type)) {system.out.println ("creó un automóvil Alto"); devolver nuevo en (); } return null; }}El modo de método de fábrica es más fácil de expandir que el modo de fábrica simple, y no es necesario modificar el código anterior.
Public Class Demo { /*** La clase de demostración es nuestra clase de operación habitual. En esta clase, no tenemos que preocuparnos por los detalles de implementación de la creación de automóviles*/ public static void main (string [] args) {atFactory atFactory = new atFactory (); DzFactory dzFactory = new dzFactory (); Coche at = atfactory.createCar (); Coche dz = dzfactory.createCar (); at.run (); dz.run (); }} interface Car {public void run ();} class dz implementa automóvil {public void run () {System.out.println ("Volkswagen se está ejecutando"); }} Clase en Implements Car {public void run () {System.out.println ("Auto Car se está ejecutando"); }} interface CarFactory {Car createCar ();} class dzFactory implementa Carfactory {public Car createCar () {return new dz (); }} class atFactory implementa CarFactory {public Car createCar () {return new at (); }}Patrón de método de fábrica abstracta:
Public Class Demo {public static void main (String [] args) {Car CarFactory = new GdCarFactory (); Fdz fdz = carfactory.createFdz (); fdz.zhuansu (); }} interfaz fdz {void zhuansu ();} class gdfdz implementa fdz {public void zhuansu () {system.out.println ("velocidad del motor de alta gama"); }} clase ddfdz implementa fdz {public void zhuansu () {System.out.println ("Velocidad del motor de baja gama lenta"); }} interfaz zy {void shushidu ();} class gdzy implementa zy {public void shushidu () {System.out.println ("Los asientos de alta gama son cómodos"); }} clase ddzy implementa zy {public void shushidu () {system.out.println ("Los asientos de gama baja son incómodos"); }} interfaz lt {void mosundu ();} class gdlt implementa lt {public void Mosundu () {System.out.println ("Los neumáticos de alta gama no se usan"); }} clase ddlt implementa lt {public void Mosundu () {System.out.println ("Los neumáticos de gama baja se desgasta rápido"); }} auto interfaz {fdz createefdz (); Zy createzy (); Lt createLT ();} clase GDCARFactory implementa automóvil {@Override public fdz createFDZ () {return new Gdfdz (); } @Override public zy createzy () {return new gdzy (); } @Override public lt createlt () {return new gdlt (); }} clase ddCarFactory implementa automóvil {@Override public fdz createFdz () {return new ddfdz (); } @Override public zy createzy () {return new ddzy (); } @Override public lt createlt () {return new ddlt (); }}Comparación de tres métodos:
1. Modo de fábrica simple: el modo simple de fábrica es simple en diseño, con un pequeño volumen de código, pero pobre escalabilidad. Cuando es necesario expandirse, debe modificar el código anterior.
2. Modo de método de fábrica: escalabilidad fuerte, pero aumenta la complejidad del código
3. Modelo de fábrica abstracta: el modelo de fábrica abstracta y el modelo de fábrica son diferentes. El modelo de fábrica abstracto divide los productos en calificaciones, pero el modelo de fábrica es clasificar los productos. Para dar un ejemplo de automóvil: el modelo de fábrica es producir diferentes tipos de automóviles, como Audi y Volkswagen, mientras que el modelo de fábrica abstracta divide el mismo automóvil en calificaciones. Por ejemplo, ambos Volkswagen, dividimos autos de alta gama y autos de gama baja. Desde una perspectiva metodológica, el patrón de fábrica abstracto se parece más al refinamiento del patrón de fábrica. Uno está dirigido a diferentes productos, y el otro está dirigido a la misma familia de productos.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.