美文网首页
工厂设计模式二(工厂方法)

工厂设计模式二(工厂方法)

作者: 新征程Dream | 来源:发表于2020-06-27 15:52 被阅读0次

上一篇我们讲了工厂设计模式的简单工厂模式。顾名思义,简单的工厂模式满足不了我们复杂的需求。现在有一个场景,工厂老板,现在越做越大,工厂也越来越多。单个冰箱的产品,都有多个牌子的。例如:美的,海尔两大牌子。我现在找老板帮我生产一个海尔冰箱的产品。这个时候,老板就该抓头挠腮了,上阶段简单工厂模式,只能满足我们要生产冰箱这个产品。如果具体的去生产某个牌子的冰箱产品,我们可以在原来的基础上追加,但是会引入一个问题,随着品牌过多,产品种类过多,简单工厂模式变得不那么容易维护。这个时候,我们就需要用到第二种工厂设计模式,工厂方法。
我们是程序员,所以我们还需要回到代码层面搞这个东西
首先,我们要有一所有的冰箱产品的基类(冰箱产品接口),其次我们要有一个工厂的基类(工厂的接口),来确保我们的工厂都有统一的行为去生产产品。

package cn.zl.factoryModel;
// 冰箱产品
public interface IceBoxProduct {
}
package cn.zl.factoryModel;
// 冰箱工厂
public interface IceBoxFactory {
    IceBoxProduct getIceBoxProduct();
}

然后在创建冰箱工厂,有海尔,美的两个工厂。好的工厂,责任分的越明细。

package cn.zl.factoryModel;
// 海尔冰箱工厂
public class HierIceBoxFactory implements IceBoxFactory{
    public IceBoxProduct getIceBoxProduct() {
        return new HierIceBox();
    }
}
package cn.zl.factoryModel;
// 美的冰箱工厂
public class MideaIceBoxFactory implements IceBoxFactory{
    public IceBoxProduct getIceBoxProduct() {
        return new MideaIceBox();
    }
}

再创建我们对应的产品,海尔空调,美的空调。

package cn.zl.factoryModel;
// 海尔冰箱
public class HierIceBox implements IceBoxProduct {
    HierIceBox() {
        
    }
}
package cn.zl.factoryModel;
// 美的冰箱
public class MideaIceBox  implements IceBoxProduct{
    MideaIceBox(){
        
    }
}

这个时候,我们的产品布局就完成了。测试一把。带来如下:

package cn.zl.factoryModel;
public class Main {
    public static void main(String[] args) {
        // 需要一个海尔冰箱
        IceBoxProduct iceBoxProduct = new HierIceBoxFactory().getIceBoxProduct();
        // 需要一个美的冰箱
        IceBoxProduct iceBoxProduct1 = new MideaIceBoxFactory().getIceBoxProduct();
    }
}

ps:在实际工作中,我们要根绝业务的复杂程度来选择最好的实设计模式,切记设计过度。

相关文章

  • 2021-11-16 - 学习记录

    设计模式学习:创建型:工厂(工厂方法,抽象工厂),建造者,单例,原型 设计模式:工厂模式 简单工厂 工厂方法 抽象工厂

  • 工厂模式

    工厂模式 就是工厂---生产-->产品 在设计模式中,分为 简单工厂模式, 工厂方法模式,抽象工厂模式. 工厂模式...

  • 设计模式-工厂模式

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

  • 2016.06笔记

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

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

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

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

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

  • 设计模式三、工厂模式

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

  • PHP-浅谈单例模式和工厂模式

    PHP中常用的设计模式有单例模式、工厂模式(简单工厂模式、工厂方法模式和抽象工厂方法模式)、适配模式、策略模式。 ...

  • 设计模式第三篇-创建型模式【工厂模式】

    设计模式案例分析-github 一、前言 工厂模式分为工厂方法(又称简单工厂)模式、抽象工厂模式。为方便讲解,工厂...

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

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

网友评论

      本文标题:工厂设计模式二(工厂方法)

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