设计模式之浅析
来源:互联网 发布:linux的home目录 编辑:程序博客网 时间:2024/06/08 12:52
设计模式有点多,在代码级别考虑问题时,不可能考虑那么多
因此,旨在透过内裤看本质,研究设计模式六大原则
1.单一职责原则
参考:http://blog.csdn.net/zhengzhb/article/details/7278174
不要存在多于一个导致类变更的原因
通俗的说,即一个类只负责一项职责。
难点:单一职责很简单,但因为存在职责扩散,所以基本上不可能完全实现单一职责
所谓职责扩散,就是因为某种原因,职责P被分化为粒度更细的职责P1和P2。
解决有三种方案:
1.代码级别(只有逻辑足够简单,才可以在代码级别上违反单一职责原则)
2.方法级别(只有类中方法数量足够少,才可以在方法级别上违反单一职责原则)
3.类级别
2.里氏替换原则
参考: 设计模式六大原则(2):里氏替换原则
里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。
它包含以下4层含义:
1.子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
2.子类中可以增加自己特有的方法。
3.当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
4.当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
3.依赖倒置原则
参考:http://blog.csdn.net/zhengzhb/article/details/7289269
依赖倒置原则基于这样一个事实:相对于细节的多变性,抽象的东西要稳定的多。
依赖倒置原则的核心思想是面向接口编程
4.接口隔离原则
参考:http://blog.csdn.net/zhengzhb/article/details/7296921
客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
5.迪米特法则(最少知道原则)
参考:设计模式六大原则(5):迪米特法则
定义:一个对象应该对其他对象保持最少的了解。
迪米特法则还有一个更简单的定义:只与直接的朋友通信
迪米特法则的初衷是降低类之间的耦合,由于每个类都减少了不必要的依赖,因此的确可以降低耦合关系。但是凡事都有度,虽然可以避免与非直接的类通信,但是要通信,必然会通过一个“中介”来发生联系。
6.开闭原则
参考:设计模式六大原则(6):开闭原则
用抽象构建框架,用实现扩展细节重点内容
单一职责原则告诉我们实现类要职责单一;
里氏替换原则告诉我们不要破坏继承体系;
依赖倒置原则告诉我们要面向接口编程;
接口隔离原则告诉我们在设计接口的时候要精简单一;
迪米特法则告诉我们要降低耦合。
开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。
- 设计模式之浅析
- 浅析设计模式之命令设计模式
- 浅析设计模式之FactoryMethod
- 浅析设计模式之单件模式
- 浅析设计模式之抽象工厂模式
- 设计模式之迭代器模式浅析
- 设计模式之组合模式浅析
- 设计模式之状态模式浅析
- 设计模式之代理模式浅析
- 浅析设计模式之策略模式
- 浅析设计模式之观察者模式
- 浅析设计模式之外观模式
- 浅析设计模式之适配器模式
- 浅析设计模式之模板模式
- 浅析设计模式之迭代器模式
- 浅析设计模式之组合模式
- 浅析设计模式之代理模式
- 浅析设计模式之Visitor模式
- 常见sql注入的防范总结
- 关于如何给 github 上其他仓库贡献代码
- 关键字杀进程
- iOS 微信支付 SDK版本1.7.5(2016年12月27日)
- LTE 架构
- 设计模式之浅析
- ubuntu 16.10下软件记录
- ubuntu 菜单栏移到下方
- Java_容器_Collection_增强for循环
- iOS - 开发中监听系统键盘删除按钮 , 回车按钮小技巧
- Eclipse构建Maven项目
- 《C++ Primer Plus(第六版)》(28)(第十四章 C++中的代码重用 笔记)
- 【9-1-6】链表的插入
- APNS 学习总结(三)