设计模式(二)简单工厂模式

一般情况下,工厂模式分为三种更加细分的类型:简单工厂、工厂方法和抽象工厂。不过,在 GoF 的《设计模式》一书中,它将简单工厂模式看作是工厂方法模式的一种特例,所以工厂模式只被分成了工厂方法和抽象工厂两类。实际上,前面一种分类方法更加常见,所以,在今天的讲解中,我们沿用第一种分类方法。

简单工厂、工厂方法原理比较简单,在实际的项目中也比较常用。而抽象工厂的原理稍微复杂点,在实际的项目中相对也不常用。所以,我们今天只讲解前两种工厂模式。

简单工厂(Simple Factory)

定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。

简而言之就是在使用一个具体对象的时候,我们不直接new一个对象,而是通过一个单独的工厂类来new这个对象。

简单工厂模式的结构图如下所示:

  • Factory:工厂类,负责实现创建所有实例的内部逻辑。创建产品类的方法可以被外界直接调用,创建所需的产品对象。
  • IProduct:抽象产品类,这是简单工厂模式所创建的所有对象的父类。
  • Product:具体产品类,继承自抽象产品类。

我们以生产手机为例,用代码来实现一下:

(1)抽象产品类

创建一个手机的抽象产品类,其有一个抽象方法用于启动手机:

abstract class Phone{
   
    public abstract void start();
}

(2)具体产品类

我们创建各种品牌的手机,他们都继承自父类Phone,并实现了启动的方法。具体分为oppo手机,vivo手机和小米手机:

class OppoPhone extends Phone {
   
    @Override
    public void start() {
   
        System.out.println("OPPO start");
    }
}

class VivoPhone extends Phone {
   
    @Override
    public void start
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值