设计模式 - 0.基础准则
大纲 | 小结 | 示意图 |
---|---|---|
基础准则 | 基础准则 | |
创建型模式 | 单例模式 | |
- | 原型模式 | |
- | 简单工厂模式 | |
- | 抽象工厂模式 | |
- | 建造者模式 | |
结构型模式 | 代理模式 | |
- | 适配器模式 | |
- | 桥接模式 | |
- | 装饰器模式 | 装饰器模式.jpg |
- | 门面/外观模式 | |
- | 享元模式 | |
- | 组合模式 | |
行为型模式 | 模板方法模式 | |
- | 策略模式 | |
- | 命令模式 | |
- | 职责链模式 | |
- | 状态模式 | |
- | 观察者模式 | |
- | 中介者模式 | |
- | 迭代器模式 | |
- | 访问者模式 | |
- | 备忘录模式 | |
- | 解释器模式 |
开闭原则
家里这块地, 想种蔬果就种蔬果, 想养花就养花, 但你想卖掉门都没有!
开闭原则是面向对象程序设计的终极目标,它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性。具体来说,其作用如下。
当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。
里氏替换原则
你马上毕业就和你爸一样, 去当火车司机
里氏替换原则主要阐述了有关继承的一些原则,也就是什么时候应该使用继承,什么时候不应该使用继承,以及其中蕴含的原理。里氏替换原是继承复用的基础,它反映了基类与子类之间的关系,是对开闭原则的补充,是对实现抽象化的具体步骤的规范。
依赖倒置原则
明明是爷爷要抽烟, 爸爸非要我去买, 还不能反抗
由于在软件设计中,细节具有多变性,而抽象层则相对稳定,因此以抽象为基础搭建起来的架构要比以细节为基础搭建起来的架构要稳定得多。这里的抽象指的是接口或者抽象类,而细节是指具体的实现类。
单一职责原则
我一个上班族, 我除了上班, 回家就是躺着, 地球崩了也别想让我离开沙发
该原则提出对象不应该承担太多职责,如果一个对象承担了太多的职责,至少存在以下两个缺点:
- 一个职责的变化可能会削弱或者抑制这个类实现其他职责的能力;
- 当客户端需要该对象的某一个职责时,不得不将其他不需要的职责全都包含进来,从而造成冗余代码或代码的浪费。
接口隔离原则
你, 去扫地, 你, 去炒菜做饭, 你, 去刷马桶, 别耷拉着脸
要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口, 接口隔离原则是为了约束接口、降低类对接口的依赖性
迪米特法则
我来分配你们做什么, 相互不要交头接耳
当前对象本身、当前对象的成员对象、当前对象所创建的对象、当前对象的方法参数等,这些对象同当前对象存在关联、聚合或组合关系,可以直接访问这些对象的方法。如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。
合成复用原则
我就直接和你谈吧, 别找我儿子了
它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。
参考
http://c.biancheng.net/view/1320.html
设计模式内的代码统一用了py来写, 如果想下载每个模式的源码请点击这里
链接:https://pan.baidu.com/s/1uuN25oWukIq-E5_vxowymA 密码:8y1s