23 patrones de diseño - patrón de la fábrica sencilla te dice cómo comprar un té

el modo de diseño de software (software de diseño del patrón), también conocido como patrones de diseño, es un conjunto de uso repetido, se sabe que la mayoría de la gente, después de catalogación, diseño de código Resumen experiencia. En él se describen algunos de los problemas en el proceso de diseño de software repiten ocurrencia, así como soluciones al problema. En otras palabras, se trata de una serie de rutinas para resolver un problema específico, es un resumen de la experiencia de diseño de código de los predecesores, tiene una cierta universalidad, puede ser utilizado en varias ocasiones. Su propósito es mejorar la reutilización del código fiabilidad, facilidad de lectura y el código.

patrón de la fábrica sencilla - definiciones básicas:

patrón de la fábrica sencilla también se conoce como un método de fábrica estática, es crear un esquema. En un modelo simple de la fábrica, de acuerdo con los diferentes parámetros pasados, devuelve una instancia de una clase diferente. patrón de la fábrica simple define una clase que está especializada para la creación de instancias de otras clases, estas clases son creadas tienen una clase padre común.

Instrucciones especiales sencilla fábrica de patrón de diseño patrón no es un tipo de 23 tipos de ellos, pero él estaba detrás de la fábrica modelo y el prototipo del Abstract Factory, asi que aquí a decirnos de él como cebador. En primer lugar comprender la sencilla ayuda patrón de la fábrica detrás del estudio.


estructura de modos:


23 patrones de diseño - patrón de la fábrica sencilla te dice cómo comprar un té

patrón de la fábrica simple diagrama de configuración UML

Análisis patrón:

Fábrica: papel fábricas. utiliza específicamente para crear instancias de la fábrica de clase para proporcionar un método que devuelve los ejemplos específicos de las diferentes clases de acuerdo con diferentes parámetros pasados.

Producto: papel abstracta producto. Para todos los productos de la clase padre.

ConcreteProduct: función específica del producto.

modo de fábrica sencilla crea el objeto y el objeto mismo separados de procesos de negocio, el sistema puede reducir el acoplamiento, de manera que ambos son relativamente fáciles de modificar. Al implementar el cambio en el futuro, sólo se necesita modificar la clase de fábrica puede ser.

Ejemplo Modo:

Hay un invitado quería comprar té, fue a buscar el vendedor para comprar una taza de té, vendedor de acuerdo a los diferentes gustos de los clientes, personal de catering para encontrar la siguiente, como las medias de té, té de mandarina, etc., el vendedor no le importa acerca de cómo hacer té específica , de acuerdo con el contenido de las órdenes de compra del cliente para conseguir el té, y los clientes zurdos.

23 patrones de diseño - patrón de la fábrica sencilla te dice cómo comprar un té

Los clientes compran el té

Modo de resumen:

ventaja

1, un patrón de fábrica sencillo para lograr la división de responsabilidades, para proporcionar una clase especial de fábrica para crear objetos.

2, los clientes no necesitan saber la categoría de producto específica nombre de la clase creada sólo necesita saber la clase de producto específica parámetros correspondientes pueden ser, por algún nombre de la clase compleja, un patrón de fábrica simple puede reducir la cantidad de memoria de usuario.

3, a través de la introducción de perfiles, no se puede modificar la sustitución y adición de nueva clase de productos de concreto en todo caso, el código de cliente y mejorar la flexibilidad del sistema hasta cierto punto.

defecto

1, debido a que la clase de fábrica centraliza toda la lógica de la creación del producto, una vez que no funciona, todo el sistema deben estar afectados.

2, usando un modo sencillo se incrementará el número de clases de fábrica en el sistema, aumenta la complejidad y la dificultad de comprensión del sistema en un determinado programa.

3, la expansión del sistema difícil, una vez que el nuevo producto tendrá que añadir lógica para modificar la planta, cuando hay muchos tipos de productos, puede hacer que la lógica de la planta es demasiado complicado, no es propicio para la expansión y el mantenimiento del sistema.

4, un patrón de fábrica sencillo debido a la utilización de método de fábrica estática, lo que resulta en el papel de la fábrica no pueden formar una jerarquía basada en herencia .

escenarios

1, la clase de fábrica objeto es responsable de la creación relativamente pequeño.

2, el cliente sólo conoce los parámetros pasados ​​clase de fábrica, cómo crear objetos no les importa

la implementación del código

El primer paso: la definición del té de venta que el producto. Cualquier necesidad de preparar el té, la producción, y completar tres pasos.

PD: Interfaz de té Creación

Pena com.leeborn.design.simpleFactory paquete de; 
/ ** 
 * milk clasificado responsable de describir lo necesitan leche  
 * @author leeborn 
 * / 
TeaMilk clase abstracta pública { 
	public abstract void prepare (); 
	public abstract void la marca (); 
	public abstract void completa (); 
}

Paso dos: Pick Fabricamos todo tipo de té cocinero

PD: clase de implementación específica para hacer té

Crear dos clases: TeaMilkStocking, TeaMilkDuck

Pena com.leeborn.design.simpleFactory paquete de; 
// alcanzar medias de té cocinar 1 
clase pública se extiende TeaMilkStocking la TeaMilk { 
	@ Override 
	public void prepare () { 
		System.out.println ( "medias listos O (∩_∩) O!") ;	 
	} 
	@Override 
	public void la marca () { 
		System.out.println ( "medias hechas té!");		 
	} 
	@Override 
	public void completa () { 
		System.out.println ( "completa té pantimedias"); 
	} 
}

com.leeborn.design.simpleFactory Package Multa por; 
// lograr Yuanyang 2 chefs de té 
TeaMilkDuck la clase pública se extiende TeaMilk { 
	@ Override 
	public void prepare () { 
		System.out.println ( "! listo Yuanyang O (∩_∩) O") ; 
	} 
	@Override 
	public void la marca () { 
		System.out.println ( "pato té!"); 

	} 
	@Override 
	public void completa () { 
		System.out.println ( "completa té de pato"); 
	} 
}

El tercer paso: elegir capataz grupo de té, el funcionario dijo específicamente cuál es el trabajo del cocinero

com.leeborn.design.simpleFactory paquete; 
Importación java.time.LocalDateTime; 
// té Líder Cook Group 
public class {TeaMilkStore 
	privada SimpleTeaMilkFactory simpleTeaMilkFactory; 
	TeaMilkStore pública (SimpleTeaMilkFactory simpleTeaMilkFactory) { 
		this.simpleTeaMilkFactory = simpleTeaMilkFactory; 
	} 
	// crear específica té 
	pública orderTeaMilk vacío (String typePizza) { 
		System.out.println ( "empezar a hacer el tipo de té:" + typePizza); 
		teaMilk teaMilk = simpleTeaMilkFactory.createTeaMilk (typePizza); 
		teaMilk.prepare (); 
		teaMilk.make (); 
		teaMilk integro (); 
		System.out.println ( "té de final:" + LocalDateTime.now ()); 
	} 
}

Paso cuatro: Las cajas registradoras poner a disposición de vendedores utilizan

El personal de ventas sólo tiene que seleccionar: pato mandarín té o leche medias de té

Pena com.leeborn.design.simpleFactory paquete de; 

// ventas de té a través de los miembros de la participación masiva de pedidos de su aplicación y conseguir té específica 
public class {SimpleTeaMilkFactory 
	createTeaMilk TeaMilk pública (String typePizza) { 
		IF (typePizza.equals ( "PATO")) { 
			nueva declaración nueva TeaMilkDuck (); 
		} 
		SI (typePizza.equals ( "MEDIA")) { 
			return new nueva TeaMilkStocking (); 
		} 
		else { 
			return null; 
		} 
	} 
}

Paso cinco: los clientes a comprar té PS: pruebas de código

Paquete com.leeborn.design.simpleFactory; 
public class Prueba { 
	void main (String [] args) {public static 
		SimpleTeaMilkFactory simpleTeaMilkFactory nueva nueva SimpleTeaMilkFactory = (); 
		TeaMilkStore teaMilkStore = new nueva TeaMilkStore (simpleTeaMilkFactory); 

		// pato té bajo un solo cliente 
		teaMilkStore. orderTeaMilk ( "PATO"); 
		// medias individuales té a los clientes 
		teaMilkStore.orderTeaMilk ( "MEDIA"); 
	} 
}


Supongo que te gusta

Origin blog.51cto.com/14231461/2481036
Recomendado
Clasificación