工厂模式白话理解

wuchangjian2021-11-04 00:53:12编程学习

1.工厂模式(Factory pattern)

        工厂模式顾名思义就是生产产品的工厂,用于生产接口方法.

        举个例子:
        发动机工厂 制造发动机
        不同的厂家 根据这个发动机 做出来的不同的车


        发动机工厂: 接口类
        发动机: 方法
        厂家: 开发者
        : 实现的功能

        有没有个大概认知, 别急, 贴代码带你走一遍

1.先创建接口

/**
 * @author fish
 * @data 2021-11-1
 */
public interface CarEngineFactory {

    public void createEngin();

}

2.写方法

/**
 * @author fish
 * @data 2021-11-1
 */
public class Audi implements CarEngines {
    @Override
    public void createEngin() {
        System.out.println("奥迪拿到了引擎");
    }
}
/**
 * @author fish
 * @data 2021-11-1
 */
public class Audi implements CarEngines {
    @Override
    public void createEngin() {
        System.out.println("奥迪拿到了引擎");
    }
}

3.建立工厂

/**
 * @author fish
 * @data 2021-11-1
 */
public class CarEngineFactory {

    //使用 getShape 方法获取形状类型的对象
    public CarEngines getBrand(String brand){
        if(brand == null){
            return null;
        }
        if(brand.equalsIgnoreCase("benz")){
            return new Benz();
        } else if(brand.equalsIgnoreCase("audi")){
            return new Audi();
        }
        return null;
    }
}

4.调用工厂

/**
 * @author fish
 * @data 2021-11-1
 */
public class Demo {

    public static void main(String[] args) {
        CarEngineFactory carEngineFactory = new CarEngineFactory();
        //获取 audi 的对象,并调用它的 getBrand 方法
        Audi audi = (Audi) carEngineFactory.getBrand("audi");
        audi.createEngin();

        //获取 benz 的对象,并调用它的 getBrand 方法
        Benz benz = (Benz) carEngineFactory.getBrand("benz");
        benz.createEngin();
    }
}

5.输出结果

奥迪拿到了引擎
奔驰拿到了引擎

Process finished with exit code 0

现在有没有理解了我前面的比喻, 这只是我个人将工厂模式翻译成白话,各位可以自行脑补,自行比喻,可能会比我的这个更恰当..(不理解可以从main方法跟流程走一遍)

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。