设计模式--简单工程模式

简单工厂模式

属于创建性模式,功能:又一个工厂对象决定创建出哪一种产品类的实例
是最简单最实用的模式

下面用披萨工厂举例:

// pizza 父类
public class Pizza  {

    private String name = "";

    public void setName(String name){
        this.name = name;
    }

    public void prepare(){

    }

    public void bake(){
     System.out.println(name + " 烧烤中。。。");
    }

    public void cut(){
        System.out.println(name + " 切割。。。");
    }

    public void box(){
        System.out.println(name + " 打包。。。");
    }
}

子类PepperPizza:

public class PepperPizza extends Pizza {
    @Override
    public void prepare() {
        super.prepare();
        System.out.println("胡椒披萨,准备中。。。");
    }
}

子类GreekPizza:

public class GreekPizza extends Pizza {
    @Override
    public void prepare() {
        super.prepare();
        System.out.println("希腊披萨,准备中。。。");
    }
}

pizza的简单工厂:

public class SimpleFactory {

    // 根据 orderType 返回对应的 Pizza 对象
    public Pizza createPizza(String orderType) {
        Pizza pizza = null;
        System.out.println("使用简单工厂模式");
        if (orderType.equals("greek")) {
            pizza = new GreekPizza();
            pizza.setName(" 希腊披萨 ");
        } else if (orderType.equals("cheese")) {
            pizza = new CheesePizza();
            pizza.setName(" 奶酪披萨 ");
        } else if (orderType.equals("pepper")) {
            pizza = new PepperPizza();
            pizza.setName("胡椒披萨");
        }
        return pizza;
    }

    //简单工厂模式,也叫静态工厂模式,上下基本一样的, 我一般用这个
    public static Pizza createPizza2(String orderType){
        Pizza pizza = null;
        System.out.println("使用简单工厂模式 2");
        if (orderType.equals("greek")) {
            pizza = new GreekPizza();
            pizza.setName(" 希腊披萨 ");
        } else if (orderType.equals("cheese")) {
            pizza = new CheesePizza();
            pizza.setName(" 奶酪披萨 ");
        } else if (orderType.equals("pepper")) {
            pizza = new PepperPizza();
            pizza.setName("胡椒披萨"); }
        return pizza;
    }
}
posted @ 2021-09-30 19:01  明月照江江  阅读(66)  评论(0编辑  收藏  举报