【面向对象】设计模式总结

一、前言

      设计模式是软件编程提升水平的一个重要技能,而且在软件攻城狮中考试里,也是比不可少的,所以小编总结了历年的软考真题,总结了设计模式。希望可以给您带来帮助。

这里写图片描述

二、行为型

行为型一共分为5种,记忆方式小编通过一个故事串起来:“一个人根据工厂的原型创建工厂”By Chuan.Wang.

这里写图片描述


单例:实例对象只有一个。

这里写图片描述


工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到子类。

这里写图片描述

原型:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

这里写图片描述

创建者:当创建复杂对象的算法应该独立于该对象的组成部分及其装配方式时。

这里写图片描述

抽象工厂:提供一个创建一系列相关或相互依赖对象的接口而无需指定具体的类。 允许客户创建对象家族,而无需指定他们具体的类。

这里写图片描述

三、创建型

观察者在观察站,发现访问者是一个黑客,报告给Boss,Boss让终结者*C破译命令, 中介 C用了各种策略解释这个链式命令,还用到迭代器来解释,然后记录访问者的状态,形成模板*为后人学习。 By Chuan.Wang.

观察者:定义对象间一种一对多的依赖关系,当一个对象的状态发生变化的时候,所有依赖于他的对象都得到通知并自动更新。让对象能够在状态改变时被通知。

这里写图片描述

访问者::表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。

这里写图片描述

中介者:一个处于众多对象,并恰当的处理众多对象之间相互之间的联系的角色。和观察者相互竞争。

这里写图片描述

策略:封装可以互换的行为,并使用委托来决定要使用哪一个。

这里写图片描述

解释器:定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。

这里写图片描述

责任链:使多个对象都有机会处理请求,从而避免请求收发双方之间耦合关系,并沿着链传递该请求,知道一个对象处理他为止。

这里写图片描述

命令:将一个请求封装为一个对象,从而是用户可用不同的请求对客户进行参数化。用途:请求排队,记录请求日志,支持可撤销操作。

这里写图片描述

迭代器:在对象的集合之中游走,而不暴露集合的实现。

这里写图片描述

备忘录:当你需要让对象返回之前的状态时候,可以使用。在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

这里写图片描述

状态:封装了基于状体的行为,并使用委托在行为之间切换。

这里写图片描述


模板方法:定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。
这里写图片描述

四、结构型

结构型可以总结为“桥外租想带装饰”,By France。

这里写图片描述

桥接:将抽象部分与现实部分分离→接口与实现分离。是接口和实现的变化不产生相互影响。

这里写图片描述

外观:简化一群类的接口。

这里写图片描述

组合:部分——整体。用户对单个对象和组合对象使用具有一致性。

这里写图片描述


享元:某一个类的一个实例能用来提供许多“虚拟实例”。

这里写图片描述


代理:包装对象,以控制对此对象的访问。
这里写图片描述

装饰:一个对象添加更多功能而不使用子类,动态给对象添加功能,为一个对象添加更多的功能而不使用子类。

这里写图片描述

适配器:讲已有类的接口转换成目标接口兼容。

这里写图片描述

五、六个原则

【开闭原则】

面向对象的可复用设计的基石,指一个软件实体应当对拓展开放,对修改关闭

【里氏代换原则】

任何基类对象可以出现的地方,子类对象一定可以出现。

【依赖倒转原则】

依赖于抽象而不依赖于实现,或者说要针对接口编程,而不要针对实现编程

【单一职责原则】

不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。

【接口隔离原则】

客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

【迪米特法则】

一个对象应该对其他对象保持最少的了解。

六、小结

      通过对比分析,自己画设计模式的类图,在应用过程中要把这些设计模式用到自己的项目中,让项目更加的灵活多变,加油!在软考中,还是要多多的温习这些定义,毕竟是应试考试,还是要多多的了解,但其中获得的东西就是我们自己的收获了。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你个佬六

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

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

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

打赏作者

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

抵扣说明:

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

余额充值