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

前言:

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

什么是设计模式?

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

建造者模式:

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

例1:造房子

  • 经典例子:造房子

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

    在这里插入图片描述

    假设造房简化为如下步骤:

    房子不管大小都是大致步骤建造,满足了其定义:

    将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

    1. 打地基
    2. 钢筋工程
    3. 砌砖
    4. 铺电线
    5. 粉刷

    “如果”要盖一座房子,首先要找一个建筑公司或工程
    开发商–>承包商(指挥者)----> 承包商指挥工人(具体建造者)------->过来造房子(产品)===>最后验收.

在这里插入图片描述

//抽象的建造者:定义造房子的方法步骤
//也可以看作工人的技能:
public abstract class Bulider {
   

    //打地基
    abstract void buildFoundation();
    //钢筋工程
    abstract void buildRebar();
    //砌砖
    abstract void buildBrick();
    //铺电线
    abstract void buildWire();
    //粉刷
    abstract void buildWall();

    //完工:得到房子
    abstract Product getProduct();

}
//产品:工人最后生产的房子
public class Product {
   
    //一个房子建成需要的步骤:
    private String buildFoundation;    //打地基
    private String buildRebar;         //钢筋工程
    private String buildBrick;         //砌砖
    private String buildWire;          //铺电线
    private String buildWall;          //粉刷

	//...	
    //中间省略 对属性的set方法,以及toString方法
    //...
}
//具体建造者:工人
public class 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值