厚积薄发打卡Day31 :[kuangStudy] GoF23通俗易懂的设计模式之 <建造者模式>

前言:

视频教程:狂神说Java之通俗易懂的23种设计模式

什么是设计模式/p>

  • 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。
    它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的
    解决方案==> 一种思维,一种态度,一种进步
  • 1995年,GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用面向对象软
    件的基础》一书,共收录了23种设计模式,从此树立了软件设计模式领域的里程碑,人称 【GoF设计模式】
设计模式分类 具体模式
创建型模式:
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
?单例模式、?工厂模式、?抽象工厂模式、?建造者模式、原型模式
结构型模式:
这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
行为型模式:
这些设计模式特别关注对象之间的通信。
模板方法模、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式

建造者模式:

  • 建造者模式也属于创建型模式:它提供了一种创建对象的最佳方式。
  • 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
  • 主要作用:在用户不知道对象的建造过程和细节的情况下,就可以直接创建复杂的对象
  • 用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)
  • 生活种的例子:
    • 工厂(建造者模式):负责制造汽车 (组装过程和细节在工厂内)
    • 汽车购买者(用户):你只需要说出你需要的型 ,(对象的类型和内容),然后直接购买就可以使用了(不需要知道汽车是怎么组装的(车轮、车门、发动机、方向盘等等))

例1:造房子

  • 经典例子:造房子

    顺便学习一波:“设计模式起源于建筑学”这句话怎么解释/p>

    例2:点套餐

    • 上面示例是Builder模式的常规用法,导演类Director在Builder模式中具有很重要的作用:
      • 它用于指导具体构建者如何构建产品,控制调用先后次序,并向调用者返回完整的产品类,
      • 但是有些情况下需要简化系统结构
      • 可以把Director和抽象建造者进行结合.
    • 通过静态内部类方式实现零件无序装配构造,这种方式使用更加灵活,更符合定义。
      • 内部有复杂对象的默认实现,使用时可以根据用户需求自由定义更改内容,并且无需改变具体的构造方式,就可以生产出不同复杂产品
    • 比如:麦当劳的套餐,服务员(具体建造者)可以随意搭配任意几种产品(零件)组成一款套餐(产品),然后出售给客户。
      • 比第一种方式少了指挥者,主要是因为第二种方式把指挥者交给用户来操作,使得产品的创建更加简单灵活。

    厚积薄发打卡Day31 :[kuangStudy] GoF23通俗易懂的设计模式之 <建造者模式>
    //服务员:public class Worker extends Builder {    private Product product;    public Worker(){product = new Product();    }    @Override    Builder builderBurger(String name) {product.setBuilderBurger(name);return this;    }    @Override    Builder builderCola(String name) {product.setBuilderCola(name);return this;    }    @Override    Builder builderFries(String name) {product.setBuilderFrie(name);return this;    }    

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月6日
下一篇 2021年2月6日

相关推荐