1.OOP设计原则
1.1 开闭原则
- 对扩展开放(添加功能对源代码没有影响)
- 对修改关闭(别人修改了功能之后对使用者没有太大影响)
- 是所有原则的总目标
1.2 里氏替换原则
- 子类应当可以替换父类并出现在父类能够出现的地方
- 是多态的基础
1.3 迪米特原则(最少知识原则)
- 只与你的直接朋友交谈,不与"陌生人"说话
- 优点:其目的是降低类之间的耦合度,提高模块的相对独立性
- 缺点:过度使用迪米特法则会使系统产生大量的中介类,从而增加系统的复杂性
1.4 单一职责原则(DIP)
- 类不要承担太多的功能,职责要单一
- 如果承担太多功能,则每个功能的变化都会影响该类
1.5 接口分离原则(ISP)
- 客户端不应依赖它不需要的接口
- 可以理解为接口要符合单一职责原则
1.6 依赖倒置原则
- 高层模块不应该依赖底层模块,二者都应该依赖抽象
- 抽象不依赖于具体,具体依赖于抽象
- 中心思想是面向接口编程
- 为什么? 细节的东西往往是多变的,而越抽象则越稳定
示例:
1.7 组合/聚合复用原则
如果处于代码复用的目的,则应该使用组合/聚合复用原则,而不要使用继承
2. 为什么需要学习设计模式
设计模式(Design pattern)代表了最佳的实践,是很多优秀的软件开发人员的经验总结,是解决特定问题的解决方案。它并不是语法规定,也不拘泥于特定语言。 恰当的使用设计模式可以代码的可复用性,可维护性,可扩展性,健壮性及安全性,这些都是系统非常重要的非功能性需求。
设计模式的广泛使用起始于1995年,GOF(四人帮)出版的《设计模式:可复用面向对象软件基础》。
本部分相关的示例代码:
https://gitee.com/lisenaq/patterndemo.git
3. 常见的设计模式
3.1 单例模式
3.1.1 概念
保证在内存中只用一个实例
3.1.2 使用场景
比如:系统配置文件的管理,这些配置文件只要使用一个单例对象进行读写即可,系统总其他地方需要使用