读书人

OO思维中的一些总结与理解

发布时间: 2012-07-26 12:01:08 作者: rapoo

OO思想中的一些总结与理解

多重继承与单一继承:

并不是多重继承就不好,单一继承就好。

造成这个误会的主要原因,C++中的多重继承方式,让可读性、可理解性变差。

其实,在现实世界中,多重继承的关系就是存在的,你可以是一个父亲,同时也可以是一个老师。

?

造成我们一直对单一继承有好感的原因,是因为C#Java都是单一继承。

但是,在C#Java中,只是使用了接口,来实现了“多重继承”的目标,并且提高了可读性。

?

但是一个语言,本身就支持多重继承,且可读性也很好,你是不是觉得不错?

没错,很多动态语言使用Mixin的方式来支持多重继承。

?

抽象、继承、多态

抽象和继承,不是为了对现实世界的事物进行分类,尽管看上去很像。

抽象和继承,是为了复用,为了DRY

在代码中,很多本应该是一个类,被拆分成2,3多个类的情况很多。

?

为什么呢?因为DRY

那按照什么来拆分类呢?

就是角色、职责、协作,DRY原则,单一职责原则,封装变化原则

?

角色、职责、协作

在所有设计模式中,90%都是根据角色、职责、DRY得出来的。

当一个类中,职责过多,或者变化太多,就要抽离(抽象分离)出来

?

设计模式中,

所有行为模式,都是由于某种行为类职责会常变化,或因为多种原因会使其某部分职责变化。

然后就把该部分职责,抽离出来,并以该职责的名字命名这种模式。

例如:

命令模式,是把命令职责抽离出来

状态模式,是把状态变化职责抽离出来

构建模式,是把构建过程职责抽离出来

?

如果你仔细研究创建模式、行为模式、结构模式,

都是把相应的创建职责、行为职责、结构相关的职责抽离出来的。

读书人网 >其他相关

热点推荐