Patrones de diseño explicados en un lenguaje sencillo - patrón de fábrica

contenido

patrón de fábrica

introducir

lograr

registro de salida


patrón de fábrica

Factory Pattern es uno de los patrones de diseño más utilizados en el desarrollo. Este tipo de patrón de diseño es un patrón de creación, que proporciona una forma óptima de crear objetos. En el patrón de fábrica, no exponemos la lógica de creación al cliente al crear objetos y usamos una interfaz común para apuntar a los objetos recién creados.

introducir

Intención: defina una interfaz para crear un objeto, deje que sus subclases decidan qué clase de fábrica instanciar y el patrón de fábrica retrasa el proceso de creación de las subclases.
Solución principal: resuelve principalmente el problema de la selección de interfaz.
Cuándo usar: cuando planeamos explícitamente crear diferentes instancias bajo diferentes condiciones.
Cómo resolverlo: deje que su subclase implemente la interfaz de fábrica y el producto devuelto también será un producto abstracto.
Código crítico: El proceso de creación se realiza en sus subclases.
Ejemplo de aplicación:  necesita un automóvil que se pueda recoger directamente de la fábrica, independientemente de cómo se fabrique el automóvil y la implementación específica en el automóvil.
Ventajas:  1. Si una persona que llama quiere crear un objeto, solo necesita saber su nombre. 2. Alta escalabilidad Si desea agregar un producto, solo necesita extender una clase de fábrica. 3. La implementación específica del producto de protección está protegida y la persona que llama solo se preocupa por la interfaz del producto. |
Desventajas: Cada vez que agrega un producto, necesita agregar una clase específica y una fábrica de implementación de objetos, lo que duplica la cantidad de clases en el sistema, aumenta la complejidad del sistema hasta cierto punto y también aumenta las clases específicas de el sistema dependencia. Esto no es bueno.

Nota: Como patrón de creación de clases, puede usar el patrón de método de fábrica en cualquier lugar que necesite para generar objetos complejos. Una cosa a tener en cuenta es que los objetos complejos son adecuados para usar el patrón de fábrica, mientras que los objetos simples, especialmente aquellos que solo se pueden crear a través de new, no necesitan usar el patrón de fábrica. Si usa el patrón de fábrica, debe introducir una clase de fábrica, lo que aumentará la complejidad del sistema.

lograr

Crearemos una   interfaz  Shape y  una clase de entidad que implemente la interfaz Shape . El siguiente paso es definir la clase de fábrica  ShapeFactory .

//创建一个接口:
public interface Shape
{
    void draw();
}
//创建实现接口的实体类。
public class Rectangle : Shape
{
    public void draw()
    {
        Debug.Log("画三角形");
    }
}
public class Circle : Shape
{
    public void draw()
    {
        Debug.Log("画圆圈");
    }
}
//创建一个工厂,生成基于给定信息的实体类的对象。
public class ShapeFactory
{
    //使用 getShape 方法获取形状类型的对象
    public Shape getShape(string shapeType)
    {
        if (shapeType == null)
        {
            return null;
        }
        if (shapeType.Equals("CIRCLE"))
        {
            return new Circle();
        }
        else if (shapeType.Equals("RECTANGLE"))
        {
            return new Rectangle();
        }
        return null;
    }
}

La clase FactoryPattern usa  ShapeFactory  para obtener   objetos Shape .  Pasará información ShapeFactory para obtener el tipo de objeto que necesita.

public class FactoryPattern : MonoBehaviour
{
    private void Start()
    {
        ShapeFactory shapeFactory = new ShapeFactory();

        //获取 Circle 的对象,并调用它的 draw 方法
        Shape shape1 = shapeFactory.getShape("CIRCLE");

        //调用 Circle 的 draw 方法
        shape1.draw();

        //获取 Rectangle 的对象,并调用它的 draw 方法
        Shape shape2 = shapeFactory.getShape("RECTANGLE");

        //调用 Rectangle 的 draw 方法
        shape2.draw();
    }

}

registro de salida

Supongo que te gusta

Origin blog.csdn.net/qq_37310110/article/details/123247261
Recomendado
Clasificación