美文网首页
设计模式之简单工厂模式

设计模式之简单工厂模式

作者: 掩流年 | 来源:发表于2019-11-24 23:10 被阅读0次

title: 设计模式之简单工厂模式
date: 2019-04-29 20:49:05
tags:


今天下午我们一起订了披萨

public class OrderPizza{

    public static void main(String[] args) {

        PizzaStore pizzaStore=new  PizzaStore();  //大家找了一家披萨店

        Pizza pizzaTestA=pizzaStore.produce("CheesePizza"); // A童鞋想吃芝士味

        Pizza pizzaTestB=pizzaStore.produce("DurianPizza");// B童鞋想吃榴莲味

        Pizza pizzaTestC=pizzaStore.produce("ChinesePizza"); //C同学想吃中国味!!

        System.out.println(pizzaTestA.order());

        System.out.println(pizzaTestB.order());

        System.out.println(pizzaTestC.order());

    }
//这就是披萨,它要被我们预定的!!

public interface Pizza {

    public String order();

}
//好可惜,从这家看起来店内部看起来好像只有两种口味哎
public class PizzaStore {

    public Pizza produce(String pizza) {

        if(pizza.equals("CheesePizza")) {

            return new CheesePizza();

        }

        else if(pizza.equals("DurianPizza")) {

            return new DurianPizza();

        }else {

            return new NewPizza();

        }

    }

}
//这是榴莲的做法
public class DurianPizza implements Pizza{
    @Override

    public String order() {

        return "i order DurianPizza";
    }
}
//这是芝士的做法
public class CheesePizza implements Pizza{

    @Override

    public String order() {

        return "i order CheesePizza";

    }
}

好了,简单工厂写完了,就好像我们买披萨只需要找披萨店,然后选口味就行。不用去这家找榴莲披萨,那家找芝士披萨,万一跑错门了呢?

如果在优化下,让披萨店提供下菜单,毕竟之前我们点披萨的时候都不知道披萨店有啥子

public class PizzaStore {

    public Pizza produceCheesePizza() {

            return new CheesePizza();

        }

    public Pizza produceDurianPizza() {

        return new DurianPizza();

    }

}

这样大家就不用瞎点了,C同学也不会想出 中国味披萨....

public class OrderPizza{

    public static void main(String[] args) {

        PizzaStore pizzaStore=new  PizzaStore();

        Pizza pizzaTestA=pizzaStore.produceCheesePizza();

        Pizza pizzaTestB=pizzaStore.produceDurianPizza();

        System.out.println(pizzaTestA.order());

        System.out.println(pizzaTestB.order());

    }

}

所以C童鞋选择吃炒面了

相关文章

  • iOS设计模式(三)之抽象工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(一)之简单工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(二)之工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

  • 设计模式之工厂模式

    设计模式之工厂模式 1. 简单工厂模式 1.1 模式定义 简单工厂模式又称为静态工厂方法,它属于创建型模式。在简单...

  • 设计模式之简单工厂、工厂方法、抽象工厂

    设计模式之简单工厂、工厂方法、抽象工厂 什么是设计模式? 设计模式(Design pattern)代表了最佳的实践...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 2016.06笔记

    iOS设计模式之工厂模式(简单工厂,工厂方法,抽象工厂) 简单工厂:简单工厂模式的工厂类一般是使用静态方法,通过接...

  • 重学设计模式(五):《Head First设计模式》工厂模式

    前言 接上篇重学设计模式(四):《Head First设计模式》工厂模式之简单工厂 概念 工厂方法模式:定义了一个...

  • 设计模式一、单例模式

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

网友评论

      本文标题:设计模式之简单工厂模式

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