设计模式——工厂模式

工厂模式

在《Head First 设计模式》一书中,一共介绍了一种类似于工厂模式的编程习惯、两种工厂模式,在这篇文章中,我将对它们分别进行介绍,下面首先来看一下简单工厂。

1、简单工厂

按照惯例,我们应该先介绍一下简单工厂的定义,然后举例说明,这一次,我们不这样做,我们首先举例说明,然后再引出简单工厂的定义,后续两个工厂模式均按此方式进行叙述,从案例中理解模式的定义才能够更加印象深刻。

1.1、简单工厂案例

1.1.1、需求

假设我们经营一家比萨店,店中提供各种口味的比萨,例如芝士比萨、蛤蜊比萨、蔬菜比萨等等,根据顾客点的比萨类型的不同,店里会为顾客准备不同口味的比萨并为顾客打包装盒。现在我们需要写一套代码来描述顾客预定比萨的过程。

1.1.2、第一种实现方式

首先,我们来分析一下需求,需求是要能够写代码来描述顾客预定比萨的过程,也就是说比萨的准备、烘焙、切块、打包这几个过程都不能少,很自然的,我们想到写一个类来表示比萨,这个类中包含比萨的所有功能代码,而需求中也描述了比萨会有多种口味,所以我们可以定义一个接口Pizza来表示比萨,并定义多个Pizza的实现类来实现这个接口,下面是我们定义的Pizza接口及其实现类:

/**比萨接口*/
public interface Pizza {
   

    public void prepare();

    public void bake();

    public void cut();

    public void box();

}
/**芝士比萨*/
public class CheesePizza implements Pizza {
   

    @Override
    public void prepare() {
        System.out.println("开始准备芝士比萨");
    }

    @Override
    public void bake() {
        System.out.println("开始烘焙芝士比萨");
    }

    @Override
    public void cut() {
        System.out.println("开始将芝士比萨分块");
    }

    @Override
    public void box() {
        System.out.println("开始打包芝士比萨");
    }

}
/**蛤蜊比萨*/
public class ClamPizza implements Pizza {
   

    @Override
    public void prepare() {
        System.out.println("开始准备蛤蜊比萨");
    }

    @Override
    public void bake() {
        System.out.println("开始烘焙蛤蜊比萨");
    }

    @Override
    public void cut() {
        System.out.println("开始将蛤蜊比萨分块");
    }

    @Override
    public void box() {
        System.out.println("开始打包蛤蜊比萨");
    }

}
/**蔬菜比萨*/
public class VeggiePizza implements Pizza {
   

    @Override
    public void prepare() {
        System.out.println("开始准备蔬菜比萨");
    }

    @Override
    public void bake
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值