Red de conocimiento informático - Conocimiento informático - Desarrollo de programación de patrón de fábrica.

Desarrollo de programación de patrón de fábrica.

Definición de patrón de fábrica

Tomamos la clase Sample como ejemplo si queremos crear un objeto de instancia de Sample:

Sample sample=new Sample(). ;

p>

Sin embargo, la situación real es que generalmente tenemos que realizar algún trabajo de inicialización al crear una instancia de muestra, como asignar valores para consultar la base de datos, etc.

En primer lugar, lo que pensamos es que podemos usar el constructor de Sample, de modo que la instancia generada se escriba como:

Sample sample=new Sample (parámetro);

Sin embargo, si el trabajo de inicialización realizado al crear la instancia de muestra no es tan simple como una asignación, puede ser un fragmento de código largo. Si también está escrito en el constructor, su código será feo (. será necesaria una refactorización).

¿Por qué el código es feo? Es posible que los principiantes no se sientan así. Nuestro análisis es el siguiente. Si el trabajo de inicialización es un código largo, significa que hay mucho trabajo por hacer. Y se empaqueta mucho trabajo en un método, lo que equivale a poner muchos huevos en una canasta, lo cual es muy peligroso. Esto también es contrario a los principios orientados a objetos de Java. díganos "cortar" las asignaciones de código largas tanto como sea posible " en cada segmento y luego "encapsular" cada segmento (para reducir la conexión de acoplamiento entre segmentos). De esta manera, los riesgos se dispersarán. Si es necesario modifíquelo en el futuro, solo necesita cambiar cada segmento y no habrá más interrupciones.

En este ejemplo, primero que nada, necesitamos separar el trabajo de crear una instancia del trabajo de usar la instancia, es decir, separar la gran cantidad de trabajo de inicialización requerido para crear la instancia del Constructor de muestra.

En este momento necesitamos el patrón Factory para generar objetos y ya no podemos usar el nuevo y simple Ejemplo (parámetro) anterior. Además, si Sample tiene una herencia como MySample, de acuerdo con la programación orientada a interfaz, necesitamos abstraer Sample en una interfaz. ISample es una interfaz y tiene dos subclases, MySample y HisSample. Cuando queremos crear una instancia de ellas, es como. siguiente:

ISample mysample=new MySample();

ISample hissample=new HisSample();

A medida que avanza el proyecto, Sample puede "dar origen a many sons", Luego tenemos que instanciar estos hijos uno por uno, y lo peor es que quizás tengamos que modificar el código anterior: agregando instancias de hijos que nacerán más tarde. Esto es inevitable en los programas tradicionales.

Pero si utilizas conscientemente el patrón de fábrica desde el principio, estos problemas desaparecerán.