• 工厂模式


    具体代码请看尚硅谷java设计模式。

    简单工厂模式
    比如在经典案例中,有中国披萨,伦敦披萨,在披萨的订单中就会用到这些披萨对象,我们常规的方式,通过传入传入的披萨类型去决定要创建哪一种的披萨对象。但是这样会存在一个问题,用披萨对象的地方很多,我们要是都要判断一遍,不满足java设计模式中的开闭原则,此时我们只要创一个类,由这个类来统一决定创建那种披萨,批次订单中创建披萨对象直接调用这个类中的创建方法即可,这个类就称为简单工厂类。
    工厂方法模式
    当我们的业务进一步拓展,现在是有北京的奶酪披萨,北京的胡椒披萨和伦敦的奶酪披萨,伦敦的胡椒披萨。如果还用简单工厂模式,那么就需要建两个简单工厂类:北京披萨工厂类,伦敦披萨工厂类。这样的话扩展性不是很好(假如再新增一种希腊披萨,披萨订单中还需要加生产这种对象的简单工厂类)。因此引入工厂方法模式,它和简单工厂模式的区别就在于,会把披萨订单类变成抽象类。把创建披萨对象抽象一个抽象方法,并由子类披萨去分别实现创建何种披萨,比如子类北京披萨类,就由传入的类型,去判断是北京胡椒还是奶酪的披萨。这样的话,在披萨订单中,调用创建披萨的方法,就不用管到底是哪里的何种披萨。
    抽象工厂模式
    抽象工厂模式是对简单工厂模式和工厂方法模式进行了整合,它会创建一个接口类专门定义一个创建披萨对象的抽象方法,再分别创建创建北京披萨和伦敦披萨的工厂类去实现这个接口,并分别去判断由传入的类型决定创建何种披萨对象,由于接口可以多实现,这样就形成了工厂簇,非常好扩展。

  • 相关阅读:
    localhost和127.0.0.1及ip区别
    Linux常用命令大全
    百度搜红包相关代码(1)
    今天开博第一篇,呵呵
    杯具啊,中考
    新年感想
    【转】汇编语言基础
    margin与padding
    .net 中的Literal Label 控件、Literal 控件、Panel 控件和 Placeholder 控件
    HTML 5 中的新元素
  • 原文地址:https://www.cnblogs.com/xiaohu666/p/16149268.html
Copyright © 2020-2023  润新知