head first 23个设计模式总结

文章目录

<Head First设计模式>总结

根据GOF四人组对设计模式的总结划分,设计模式分为三大类:

  • 创建型:

    涉及到对象实例化,这类模式都提供一个方法,将客户从所需要实例化的对象中解耦

  • 结构型

    可以让你把类或者对象组合到更大的结构中

  • 行为型

    涉及到类和对象如何交互及分配职责

创建型

工厂方法

描述:

定义了一个创建对象接口,由子类决定实例化类是哪一个。工厂方法将类的实例化推迟到了子类。

结构:

img

抽象工厂方法

描述:

用于提供一个创建一系列或相关依赖对象的接口,而无需指定他们的具体类。

结构:

抽象工厂模式

建造者模式

描述:

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

结构:

img

原型模式

描述:
用原型实例指定创建对象的种类,并通过这些原型创建新的对象。
使用:
当创建给定类的实例过程很昂贵或很复杂时,就使用原型模式。

结构:

img

单例模式

描述:
保证一个类只有一个实例,并提供一个它的全局访问点。

结构:

img

结构型

适配器模式

描述:
将一个类的接口转换为客户希望的另一个接口,使原来接口不兼容的类一起使用。
使用:
适配器和期望的类实现同一个接口,同时适配器持有需被适配的类引用,这样就可以完成类的适配。

结构:
img

桥接模式

描述:
使抽象部分和实现部分分离,使它们可以独立的变化。
使用:
抽象类持有目标实现类接口的引用,通过动态修改具体实现类的引用来实现功能。

结构:

img

组合模式

描述:
将对象组合成树状结构,以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。

结构:

img

装饰者模式

描述:
动态给对象添加一些额外的行为。若要扩展功能,装饰者模式比继承更具有弹性。

结构:

img

外观模式

描述:
定义了一个高层的接口,为子系统的一组接口提供了一个一致的界面,使得子系统更容易使用。

结构:

img

享元模式

描述:
运用共享技术有效的支持大粒度对象。

结构:

img

代理模式

描述:
为其他对象提供代理以控制这个对象的访问。

结构:

img

行为型

观察者模式

描述:
定义对象间一种一对多的对象依赖关系,当对象发生改变时,所有依赖他的对象收到通知并自动更新。

结构:

img

模板方法

描述:
在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中。模板方法可以使得子类在不改变算法结构情况下,重新定义算法中的某些步骤实现。

结构:

img

命令模式

描述:
将请求封装成对象,以便使用请求、队列或者日志来参数化其他对象。命令模式也支持撤销操作。

结构:

img

状态模式

描述:
允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。

结构:

img

责任链模式

描述:
使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间耦合。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理为止。

结构:

img

解释器模式

描述:
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

结构:

img

中介者模式

描述:
用一个中介对象来封装一系列对象的交互。中介者模式使各对象之间不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

结构:

img

访问者模式

描述:
允许你对组合结构加入新的操作,而无需改变结构本身。
使用:
当你想要为一个对象的组合增加新的能力,且封装并不重要时,就使用访问者模式。因为会打破组合类的封装。

结构:

img

策略模式

描述:
定义了算法簇,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

结构:

img

备忘录模式

描述:
在不破坏封装的前提下,捕获对象的内部状态,并在该对象外保存这个状态。这样可以让对象恢复到保存的状态。

结构:

img

迭代器模式

描述:
提供一种方法顺序访问聚合对象中的各个元素,而不需要暴露该对象的内部表示。

结构:

img

引文链接

https://www.cnblogs.com/zengzhihua/p/9626539.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值