建一座设计模式大厦

类比设计模式

设计模式几乎是在面试的时候面试官必问到的话题,今天我就来说说我是怎么把23中建筑模式记住的。
我是把设计模式理解为建造一栋大厦的蓝图。
首先设计模式分为三种,分别是创建型模式,结构性模式和行为型模式。这类比为大厦所需要的建筑材料,大厦的框架和大厦的建造者。

创建型模式

盖一座大厦的话,建筑材料是必不可少的。此时建筑材料的来源就是所包含的五种设计模式。
工厂模式
定义:定义了一个创建对象的类,由这个类来封装实例化对象的行为。
类比: 我需要一部电梯,我可以直接交个一个工厂来制作。
抽象工厂模式
定义:定义了一个接口用于创建相关或有依赖关系的对象族,而无需明确指定具体类。
类比: 我需要一部长3m,宽3m,高5m的能够载人上下的工具。(将电梯抽象成一系列的数据)
单例模式
定义:确保一个类最多只有一个实例,并提供一个全局访问点
类比: 我需要一个阿玛尼的电梯。(奢侈品牌,全球只此一家)
建造者模式
定义:封装一个复杂对象构造过程,并允许按步骤构造。
类比:我需要一部电梯,电梯门由A公司制作,传动系统由B公司来做,电梯框架由C公司来做。然后都做完了交给我我自己组装。
原型模式
定义:通过复制现有实例来创建新的实例,无需知道相应类的信息。
类比:我要一个和哈利法塔一摸一样的电梯。

结构型模式

一座大厦的建造,肯定需要有设计图。设计图的规范和作用就是所包含的七种设计模式
适配器模式
定义: 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题
类比:大厦的框架要因地制宜。
装饰器模式
定义:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性。
类比:大厦的框架需要具有可拓展性,方便后续功能的添加。
外观模式
定义: 隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。
类比:大厦外面全部贴上玻璃。
代理模式
定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。
类比:大厦的框架要提前考虑好水电的走线等细节问题,方便后续装修
桥接模式
定义: 将抽象部分与它的实现部分分离,使它们都可以独立地变化。
类比:大厦的设计图是设计者和建造者之间的桥梁
组合模式
定义:有时又叫作部分-整体模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性。
类比:大厦的整体框架是由一个个小框架组合而来的
享元模式
定义:通过共享的方式高效的支持大量细粒度的对象。
类比:一个大厦的设计图可以建造很多同样的大厦。

行为型模式

大厦的建造当然需要建筑工人来实现,建筑工人的行为就是剩下的十一种设计模式
策略模式
定义: 策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。
类比:每个建筑工人都用基本的建筑技能
模版模式
定义:定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。
类比:每个建筑者都应该遵守相应的规章制度
观察者模式
定义: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
类比:要有质量评估人员和包工头来建设大厦的建筑进度和质量
迭代器模式
定义:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。
类比:有一个建筑名单包含了所有建筑工人的名字
责任链模式
定义:如果有多个对象有机会处理请求,责任链可使请求的发送者和接受者解耦,请求沿着责任链传递,直到有一个对象处理了它为止。
类比:建筑者之间存在着明确的分工,出了事故可以逐个找到是谁的原因
命令模式
定义:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。
类比:下级建筑者都要听从上级的命令
备忘录模式
定义: 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。
类比:每个建筑工人都应该只能自己接下来的工作。
状态模式
定义: 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。
类比:建筑工人可以有休假,工作,休息等多种状态
访问者模式
定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离。
类比:不同种类的建筑者有不同的工作
中介者模式
定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。
类比:老板可以通过中介找到合适的建筑公司
解释器模式

总结

通过类比,我们可以把一些难以理解的东西想象成日常生活中常见的例子,万物之间都是有一定的关联的。上述中有类比不准确的只代表个人观点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈游戏开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值