首页 > 代码库 > 类的设计原则

类的设计原则

刚接触设计模式的时候我就被它的优雅给吸引了,发现原来代码还可以这样写,当时的我入了迷。

记得看的第一本设计模式的书籍叫《大话设计模式》,当时的我还不能完全理解里面的思想,但并不妨碍我被它的优雅给吸引,这本书我看了3遍,直到现在感觉还是有点乱,在这整理一下自己的思路,加深一下自己的理解。

类的设计原则:


开闭原则:在面对对象设计的中,应该遵循对扩展开放,对修改关闭。

开闭原则实现方法:

为了满足开闭原则,我们这软件设计中应该将不变的部分抽象出来,定义成不变的接口(或抽象类),模块之间调用通过抽象接口进行,这样即使实现层发生变化,调用代码也不需要改变,接口是不变的是可以复用的,简单的说就是基于接口(抽象)编程


单一职责原则:在类的设计过程中,只能让一个类有且只有一个职责。

为什么一个类不能多余一个以上的职责?

当一个类拥有多个职责的时候,也就意味着有多个原因会引起该类的改变,而这种变化会影响到该类不同职责的使用者:

1.当类的一个职责需要包含其他外部类的时候,该类的另外一个职责的使用者就不得不包还这个外部类

2.当类的一个职责改变,而该类的另外一个职责的使用者也不得不重新编译这个类

职责划分

单一职责其实从字面去理解非常容易,但在实际的设计过程中,并不是那么容易对职责进行划分。

首先我尝试用一句话来概括这个类的职责,在语句中不要包括或、且、和之类的字眼,然后考虑这个类是否存在多个原因引起他的改变


接口分离原则:接口的设计应该遵循最小接口原则,不要把用户不需要的方法放到同一个接口里


依赖倒置原则:高级模块不应该依赖低级模块,应该依赖抽象,抽象不应该依赖于细节,细节应该依赖抽象


里氏替换原则:子类应该可以替换掉父类出现的任何地方,或者说我们将代码中所有出现父类的地方替换成子类,代码仍然可以正常运行