Patrones de diseño Notas modo de plantilla de doce

problemas de producción de leche

La programación de la leche producida, de la siguiente manera:

  1. La producción de leche en el proceso de selección -> Agregar los ingredientes -> remojo -> Leche de soja divide en
  2. Mediante la adición de diferentes ingredientes, puede crear diferentes sabores de la leche
  3. Selección y penetre en la leche de soja romper estos pasos para crear cada sabor de la leche de soja son los mismos
  4. Por favor, use finalizado el patrón método de la plantilla (Nota: debido a que el patrón de plantilla método es relativamente simple, es fácil pensar en este programa, por lo que el uso directo, ya no utilizar el enfoque tradicional de la plantilla elicit patrón del método)

Método plantilla de patrón de introducción básica

introducción básica

  1. plantilla patrón Method (Método Plantilla Pattern), también conocido patrón de plantilla (patrón de plantilla), z se da a conocer en una clase abstracta define un método de ejecutar su plantilla. Sus subclase pueden reemplazar los métodos según sea necesario para lograr, pero la invocación se define en la clase abstracta.
  2. En pocas palabras, el algoritmo de modelo esqueleto método de la plantilla se define en una operación, mientras que el aplazamiento de algunos pasos a subclases, las subclases no pueden cambiar un algoritmo de configuración de ese tipo, a ciertos pasos del algoritmo puede redefinir
  3. Este tipo de patrón de diseño pertenece patrones de comportamiento.

Método Plantilla patrón principio diagrama de clases

diagrama de clases patrón 16.3.1 Método Plantilla del principio
Aquí Insertar imagen Descripción
 diagrama de clases ilustrativas de los principios - que (funciones y responsabilidades de la Template Method)

  1. AbstractClass clase abstracta, los implementos de clase el método de la plantilla (plantilla), los define los algoritmos del esqueleto, subclases concretas necesitan implementar otros métodos operationr2,3,4 abstracto
  2. ConcreteClass implementar los métodos operationr2,3,4 abstracto, para completar los pasos del algoritmo en la subclase características

Template Method para resolver el problema de la producción de leche

  1. Ejemplos de las aplicaciones requiere
    la programación de la producción de leche, de la siguiente manera:
    Producción de selección de flujo de leche -> Agregar los ingredientes -> remojo -> Leche de soja allanada por la adición de diferentes ingredientes, puede producir diferentes sabores de la leche
    de selección, de inmersión y de descarga la leche de soya roto en varios pasos para cada producción de leche sabor son los mismos (judías rojas, cacahuetes, leche ...)

  2. Ideas y esquema de análisis (clase FIG)
    Aquí Insertar imagen Descripción

método de gancho Template Method

  1. En el Template Method clase padre, podemos definir un método que no hace nada por defecto, como puede ser el caso subclases no lo cubren, que se llama "gancho".
  2. ¿O la leche con los ejemplos anteriores para explicar, por ejemplo, también queremos hacer leche pura, no añadir ningún ingrediente, utilizar un método de gancho para transformar la parte delantera del método de la plantilla
  3. Código muestra:
//抽象类,表示豆浆
public abstract class SoyaMilk {

	//模板方法, make , 模板方法可以做成final , 不让子类去覆盖.
	final void make() {
		
		select(); 
		if(customerWantCondiments()) {
			addCondiments();
		}
		soak();
		beat();
		
	}
	
	//选材料
	void select() {
		System.out.println("第一步:选择好的新鲜黄豆  ");
	}
	
	//添加不同的配料, 抽象方法, 子类具体实现
	abstract void addCondiments();
	
	//浸泡
	void soak() {
		System.out.println("第三步, 黄豆和配料开始浸泡, 需要3小时 ");
	}
	 
	void beat() {
		System.out.println("第四步:黄豆和配料放到豆浆机去打碎  ");
	}
	
	//钩子方法,决定是否需要添加配料
	boolean customerWantCondiments() {
		return true;
	}
}

16.6 análisis Template Method en fuente de la aplicación Spring Framework

  1. Cuando se aplica a inicializar el contenedor del resorte COI Método Plantilla Pattern
  2. código de carácter Análisis análisis + + clase descrita en la figura.
    Aquí Insertar imagen Descripción
  3. El diagrama de clases para el (jerarquía instrucciones) de código fuente
    Aquí Insertar imagen Descripción

Notas y detalles de la Template Method

  1. La idea básica es: no existe algoritmo sólo en un lugar, que está en la clase padre, fácil de modificar. Cuando la necesidad de modificar el algoritmo, siempre y cuando el método de la clase padre para modificar la plantilla o ya implementado ciertas medidas, la subclase heredará esos cambios
  2. Maximiza la reutilización de código. clase padre Método plantilla y subclase algunos de los pasos que se realizarán directamente a través de la herencia.
  3. Tanto el algoritmo unificado, también proporcionan una gran flexibilidad. Plantilla método de la clase padre para asegurarse de que la estructura de algoritmo se mantiene sin cambios, mientras que proporciona algunos de los pasos alcanzados por las subclases.
  4. Insuficiencias del modelo: cada una de las diferentes implementaciones requieren una subclase de alcanzar, lo que resulta en el aumento del número de clases, haciendo el sistema más sustancial
  5. Los métodos generales de plantilla se combinan con la palabra clave final, para evitar subclases reemplazar el método plantilla.
  6. Método plantilla de escenarios de uso patrón: cuando a completar en un proceso, el proceso para llevar a cabo una serie de pasos, esta serie de pasos es básicamente el mismo, pero los pasos individuales puede ser diferente cuando se implementa, se considera generalmente que lidiar con el Template Method
Publicado 93 artículos originales · ganado elogios 31 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_43866567/article/details/104841518
Recomendado
Clasificación