Patrones de diseño comunes de iOS: patrón de diseño de fábrica

Patrones de diseño comunes de iOS: patrón de diseño de fábrica

Patrón de fábrica simple:

Patrón de fábrica simple: defina específicamente una clase (clase de fábrica) que será responsable de crear instancias de otras clases. Se pueden devolver instancias de diferentes clases de acuerdo con los parámetros del método de creación. Las instancias creadas generalmente tienen una clase principal común.
Insertar descripción de la imagen aquí

①Cree una clase de fábrica, clase abstracta de Coca-Cola.
② Coca-Cola y Pepsi-Cola heredan de la clase abstracta Coca-Cola.

// 简单工厂实现 
@implementation SimpleFactory 
+ (Cola *)createColaWithType:(NSInteger)type 
{ 
	switch (type) 
	{ 
	case 0: 
		//可口可乐
		return [CocaCola new]; 
	case 1: 
		//百事可乐
		return [PesiCola new]; 
	default: 
		return nil; 
		break; 
	} 
} 
@end

ventaja:

  1. El objeto requerido se puede obtener según los parámetros acordados sin conocer los detalles de su creación. Reduce el acoplamiento del sistema.
  2. El cliente no necesita conocer el nombre de la clase de producto específica creada, solo necesita conocer los parámetros correspondientes a la clase de producto específica, lo que reduce el costo de memoria del desarrollador.

defecto:

  1. Si se agregan nuevos productos al negocio, es necesario modificar la lógica de juicio original de la clase de fábrica, lo que en realidad viola el principio de apertura y cierre.
  2. Cuando hay muchos tipos de productos, la lógica de fábrica puede ser demasiado compleja. Por lo tanto, el modelo de fábrica simple es más adecuado para situaciones donde los tipos de productos son relativamente pequeños y la probabilidad de aumento es muy baja.

Patrón de fábrica (patrón de método de fábrica)

El patrón de método de fábrica también se denomina patrón de fábrica: la clase principal de fábrica es responsable de definir la interfaz pública para crear objetos de producto, mientras que la subclase de fábrica es responsable de generar objetos de producto específicos, es decir, se crean diferentes productos a través de diferentes subclases de fábrica. objeto.
Insertar descripción de la imagen aquí

Diferencias con las fábricas simples:
existen algunas diferencias entre los métodos de fábrica y las fábricas simples: una fábrica simple produce diferentes productos mediante una fundición, mientras que el método de fábrica abstrae la fábrica y los diferentes productos son producidos por fábricas específicas especializadas. La fábrica de Coca-Cola se especializa en la producción de Coca-Cola y la fábrica de Pepsi-Cola se especializa en la producción de Pepsi-Cola.
Es decir: varias fábricas realizan producción uno a uno para fabricantes de múltiples marcas .

// 工厂抽象类 
@implementation Factory 
+ (Cola *)createCola 
{
 	return [Cola new];
 }
 @end 
// 可口可乐工厂
 @implementation CocaColaFactory 
+ (Cola *)createCola 
{ 
	return [CocaCola new]; 
} 
@end 
// 百事可乐工厂
 @implementation 
PesiColaFactory 
+ (Cola *)createCola 
{ 
	return [PesiCola new];
} 
@end

ventaja:

  1. Encuentre la fábrica correspondiente para la producción de acuerdo con los productos requeridos. No le importan los detalles del producto y no necesita saber el nombre de la clase del producto.
  2. Cuando se agrega un nuevo producto al sistema, no es necesario modificar las interfaces proporcionadas por la fábrica abstracta y el producto abstracto, ni modificar el cliente y otras fábricas específicas y productos específicos, sino que solo necesita agregar una fábrica específica. y su correspondiente producto específico Cumple con el principio de apertura y cierre.

defecto:

  1. Cuando se agrega un nuevo producto al sistema, además de la nueva categoría de producto, también se debe proporcionar la categoría de fábrica específica correspondiente al mismo. Por lo tanto, el número de clases en el sistema aumentará en pares, aumentando la complejidad del sistema.

patrón abstracto de fábrica

Patrón abstracto de fábrica: proporciona una interfaz para crear una serie de objetos relacionados o interdependientes sin especificar sus clases específicas.
Insertar descripción de la imagen aquí

La diferencia entre fábrica abstracta y método de fábrica:
la fábrica que produce productos es abstracta. Las fábricas temáticas no sólo producen Coca-Cola o Pepsi, sino que también es necesario personalizar las botellas y cajas para especializarse en la producción de diferentes productos con la misma temática.
ventaja:

  1. No es necesario proporcionar detalles del producto, solo necesita saber a qué fábrica pertenece el producto. Cuando varios objetos de una familia de productos están diseñados para funcionar juntos, se puede garantizar que el cliente siempre utilice únicamente objetos de la misma familia de productos. Este es un patrón de diseño muy práctico para algunos sistemas de software que necesitan determinar su comportamiento en función del entorno actual.

defecto:

  1. Especifica todas las colecciones de productos que se pueden crear. Es difícil expandir nuevos productos en la familia de productos y es necesario modificar la interfaz de la fábrica abstracta.

Supongo que te gusta

Origin blog.csdn.net/weixin_42357849/article/details/123482075
Recomendado
Clasificación