Patrón de fábrica del patrón de diseño de Java (fábrica simple, patrón de fábrica)

Patrón de fábrica simple

Tome el automóvil como ejemplo para realizar el patrón de fábrica simple
Defina la interfaz del automóvil Dado que el patrón de fábrica solo está relacionado con la creación de objetos, no es necesario definir métodos específicos.

package com.xzy.simpleFactory;

public interface ICar {
    
    
    //定义小汽车接口
}
package com.xzy.simpleFactory;

public class UpCar implements ICar {
    
    
    //高档汽车的实现
}
package com.xzy.simpleFactory;

public class MidCar implements ICar {
    
    
    //中档汽车的实现
}
package com.xzy.simpleFactory;

public class DownCar implements ICar {
    
    
    //低档汽车的具体实现
}

Una fábrica para crear automóviles, utilizada para crear tres tipos de automóviles.

package com.xzy.simpleFactory;

public class CarSimpleFactory {
    
    
    public static final String UPTYPE = "uptype";
    public static final String MIDTYPE = "midtype";
    public static final String DOWNTYPE = "downtype";

    public static ICar create(String type) {
    
    
        ICar obj = null;
        if (type.equals(UPTYPE)) {
    
    
            //创建高档汽车
            obj = new UpCar();
        }else if(type.equals(MIDTYPE)){
    
    
            //创建中等汽车
            obj = new MidCar();
        }else if(type.equals(DOWNTYPE)){
    
    
            //创建低档汽车
            obj = new DownCar();

        }
        //返回创建好的对象
        return obj;
    }
}

Escriba una clase de prueba para probar

package com.xzy.simpleFactory;

import org.junit.Test;

public class SimpleFactoryTest {
    
    
    @Test
    public void test(){
    
    
        //传入需要创建的对象类型
        ICar car = CarSimpleFactory.create(CarSimpleFactory.MIDTYPE);
        System.out.println(car.getClass());

    }
}

Los resultados de ejecución ya no se muestran.

Características de Simple Factory
  1. Es una clase concreta, no una interfaz o una clase abstracta.
  2. Si desea agregar un nuevo tipo de automóvil de alta gama, debe escribir la implementación del automóvil de alta gama y debe modificar el método de creación de la clase de fábrica.

patrón de fábrica

La definición de la interfaz del automóvil y la realización de los tres automóviles son las mismas que la definición de la fábrica simple.

Definir una fábrica abstracta

package com.xzy.Factory;

public abstract class AbstractFactory {
    
    
    //定义抽象工厂,具有子工场的共同特性
    public abstract  ICar create();
}

Definir subfactorías específicas

package com.xzy.Factory;

public class UpFactory extends AbstractFactory {
    
    
    @Override
    public ICar create() {
    
    
        return new UpCar();
    }
}

*****************************************

package com.xzy.Factory;

public class MidFactory extends AbstractFactory {
    
    
    @Override
    public ICar create() {
    
    
        return new MidCar();
    }
}

******************************************

package com.xzy.Factory;

public class DownCarFactory extends AbstractFactory {
    
    
    @Override
    public ICar create() {
    
    
        return new DownCar();
    }
}

clase de prueba de escritura

package com.xzy.Factory;

import org.junit.Test;

public class AbstractFactoryTest {
    
    
    @Test
    public void test(){
    
    
        AbstractFactory obj = new UpFactory();

        ICar car = obj.create();

        System.out.println(car.getClass());
    }
}

resultado de la operación

class com.xzy.Factory.UpCar

Process finished with exit code 0

fábrica abstracta

  1. En términos generales, en el modo de fábrica, la fábrica simple es un sistema de un solo producto, mientras que la fábrica abstracta es un sistema de múltiples productos.
  2. En esencia, las fábricas abstractas y los patrones de fábrica están unificados.

Supongo que te gusta

Origin blog.csdn.net/weixin_42643321/article/details/107957885
Recomendado
Clasificación