前言
学习设计模式的目的和原则。
提示:以下是本篇文章正文内容,下面案例可供参考
一、使用设计模式的目的
可以让我们的程序具有更好的
- 代码重用
- 可读性
- 可扩展性
- 可靠性
- 高内聚、低耦合
二、设计模式(6+1)原则
1.单一职责原则
一个类只负责一个职责
注意事项和细节:
1)降低类的复杂度,一个类只负责一项职责;
2)提高类的可读性、可维护性;
3)降低变更引起的风险;
4)通常情况,应当遵守单一职责原则。只有逻辑足够简单,可以在代码级违反原则;只有类中方法足够少才可以在方法级别保持单一职责原则。
2.接口隔离原则
一个类对另外一个类的依赖应该建立在最小的接口上。
3.依赖倒转原则
1)高层模块不应该依赖低层模块,二者都应该依赖其抽象;
2)抽象不应该依赖细节,细节应该依赖抽象;
3)中心思想:面向接口编程;
4)基于的设计思想:相对于细节的多变性,抽象的东西要稳定得多。以抽象为基础搭建的东西比以细节为基础的架构稳定得多;
5)使用接口和抽象类的目的是制定好规范,而不涉及具体操作,把展示细节的任务交给他们的实现类去完成。
依赖关系传递的三种方式:1、接口传递;2、构造方法传递;3、setter方式传递。
注意事项和细节:
1)低层模块尽量都要有抽象类和接口,或者两者都要有,程序稳定性更好;
2)变量的声明类型尽量是抽象类和接口,这样我们的变量和引用间就多了一个缓冲层,利于程序的扩展和优化;
3)继承时遵循里氏转换原则。
4.里氏转换原则
基本介绍:所有使用基类的地方都能透明的使用其子类。
注意:里氏转换原则要求继承的子类尽量不要重写父类的方法。继承使得程序耦合性增加,可以通过聚合、组合、依赖来解决问题。
5.开闭原则
基本介绍:对扩展开放、对修改关闭;
用抽象构建框架、用实现扩展细节。
6.迪米特法则
基本介绍:
1)一个对象应该对其他对象保持最少的了解
2)类与类关系越密切,耦合度越大
3)最少知道原则:一个类对自己依赖的类知道的越少越好
4)只与直接的朋友通信
5)直接的朋友:成员变量、方法参数、方法返回值的类
注意事项和细节:
1)降低类之间的耦合
2)降低类之间的耦合,并不是没有耦合
7.合成复用原则
尽量使用合成/聚合的方式,而不是使用继承。
总结
核心思想:
1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起;
2、面向接口编程;
3、为了对象间解耦设计努力。