【设计模式】——工厂模式_简单工厂模式

2020-06-15  本文已影响0人  从不打小怪兽

要点

这是个简单工厂实例

  1. 首先建立个接口
interface  Car {
    void run();
}
  1. 然后是两个实现类
public class Benz implements Car{

    @Override
    public void run() {
        System.out.println("我是奔驰!");
    }
}
public class BMW implements Car{

    @Override
    public void run() {
        System.out.println("我是宝马");
    }
}

\color{red}{3. 不使用工厂模式情况下,直接调用的方法通常如下}

/**
 * 不调用工厂的情况下
 * @author Sakura
 *
 */
public class Client01 {
    
    public static void main(String[] args) {
        
        Car c1=new Benz();
        Car c2=new BMW();
        
        c1.run();
        c2.run();
    }
}

控制台:

我是奔驰!
我是宝马

\color{red}{4. 使用工厂模式情况下,调用的方法}

/**
 * 工厂
 * @author Sakura
 *
 */
public class CreatCarFactory{
    //第一种实现方式,添加所有子类
    public static Car creatCar(String type){
        if("BMW".equals(type)){
            return new BMW();
        }else if("Benz".equals(type)){
            return new Benz();
        }else{
            return null;
        }
    }
    //第二种实现方式,为每个子类添加方式
    public static Car creatBMW(){
        return new BMW();
    }
    
    public static Car creatBenz(){
        return new Benz();
    }

}
/**
 * 调用简单工厂
 * @author Sakura
 *
 */
public class Client02 {
    public static void main(String[] args) {
        Car c1=CreatCarFactory.creatCar("BMW");
        Car c2=CreatCarFactory.creatCar("Benz");
        Car c3=CreatCarFactory.creatBenz();
        Car c4=CreatCarFactory.creatBMW();
        
        c1.run();
        c2.run();
        c3.run();
        c4.run();
    }
}

控制台:

我是宝马
我是奔驰!
我是奔驰!
我是宝马

上一篇下一篇

猜你喜欢

热点阅读