美文网首页
(三)抽象工厂模式

(三)抽象工厂模式

作者: 那就省略号吧 | 来源:发表于2020-07-06 15:36 被阅读0次

概念

抽象工厂模式为创建型模式该模式与简单工厂模式相比,该模式用一个超级工厂的概念,该超级工厂又去创建其他工厂,是其他工厂的父工厂;

UML

现在有一个食品工厂,里面有饮料生产车间和披萨生产车间,用户生成不一样的饮料和披萨:


图片.png
  • 食品工厂
public abstract class ParentFactory {
    public abstract Drink createDrink(String type);
    public abstract Pizza createPizza(String type);
}
  • 饮料工厂
public class DrinkFactory  extends  ParentFactory{
    @Override
    public Drink createDrink(String type){
        Drink drink=null;
        if (type.equals("coffee")){
            drink = new Coffee();
        }else if (type.equals("mike")){
            drink = new Mike();
        }
        return drink;
    }

    @Override
    public Pizza createPizza(String type) {
        return null;
    }
}
  • 牛奶
public class Mike extends Drink {
    @Override
    public void getDrink() {
        System.out.println("牛奶");
    }
}
  • 咖啡
public class Coffee extends Drink {
    @Override
    public void getDrink() {
        System.out.println("获取咖啡");
    }
}
  • 披萨工厂
public class PizzaFactory extends ParentFactory {
    @Override
    public Pizza createPizza(String type){
        Pizza pizza=null;
        if (type.equals("1")){
            pizza=new CheesePizza("起司");
        }else {
            pizza=new GreekPizza("希腊风味");
        }
        return pizza;
    }

    @Override
    public Drink createDrink(String type) {
        return null;
    }
}
  • 起司披萨
public class CheesePizza extends Pizza {
    public CheesePizza(String name) {
        super(name);
    }
    @Override
    void getPizza() {
        System.out.println(getName()+"披萨");
    }
}
  • 希腊风味披萨
public class GreekPizza extends Pizza {
    public GreekPizza(String name) {
        super(name);
    }
    @Override
    public void getPizza(){
        System.out.println(getName()+"披萨");
    }
}
  • 工厂调用
public abstract class ParentFactory {
    public abstract Drink createDrink(String type);
    public abstract Pizza createPizza(String type);
}

相关文章

  • 工厂模式

    工厂模式细分三种:简单工厂模式、工厂模式、抽象工厂模式。 工厂模式相当于抽象了简单工厂模式的工厂类,而抽象工厂模式...

  • 简单工厂模式

    对于工厂模式,具体上可以分为三类:简单工厂模式工厂方法模式抽象工厂模式 对于上面的三种工厂模式,从上到下逐步抽象,...

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 抽象工厂模式(选择产品簇)

    目录 回顾众多工厂模式 抽象工厂模式的理念 抽象工厂模式与工厂方法模式的差异 怎么来实现抽象工厂模式 抽象工厂模式...

  • 工厂模式

    工厂模式根据抽象程度的不同分为三种: 简单工厂模式(也叫静态工厂模式) 工厂方法模式 抽象工厂模式 优点: 可以使...

  • 工厂模式理解

    工厂模式分为简单工厂、工厂模式、抽象工厂三种层级概念。简单工厂不属于23种设计模式,抽象工厂才是。 简单工厂 简单...

  • 【抽象工厂模式】Abstract Factory Design

    抽象工厂模式 抽象工厂模式是**Creational **模式之一 抽象工厂模式和工厂模式很相似,甚至可以说抽象工...

  • 设计模式-创建型模式-工厂模式(工厂三兄弟)

    设计模式-创建型模式-工厂模式(工厂三兄弟)工厂模式分为简单工厂,工厂方法,抽象工厂。 简单工厂模式 一个接口,三...

  • 第3章 创建型模式-抽象工厂模式

    ■ 抽象工厂模式的优点 ■ 抽象工厂模式的缺点 ■ 抽象工厂模式的使用场景 ■ 抽象工厂 AbstractFact...

  • 常用设计模式

    设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

网友评论

      本文标题:(三)抽象工厂模式

      本文链接:https://www.haomeiwen.com/subject/jrwwqktx.html