天天看点

面向对象设计原则

        《敏捷开发》第二部分主要讲述了5个设计原则,这5个原则主要是一个在开发中主要起到一个指导性的作用,事实上,我觉得,就书中的例子而言,很多时候并不需要使用任何原则,或者说任何设计模式,因为例子都很小,在代码很小的时候去做这种模式也好,原则也好,本身不存在什么意义,当然,敏捷中,我们强调只愚蠢一次,程序员不可能预见到后期所有的变化,但是当我们面对一种类型的变化,我们就要考虑以后碰到类似的变化就不能再犯一次愚蠢,我们需要使用这些原则是重构我们的代码,以应对以后的变化。

       srp,单一职责原则。就一个类而言,应该仅有一个引起它变化的原因。职责定义为“引起变化的原因”,说道职责,必须考虑这个类服务的客户,也就是说,这个类的服务内容必须足够内聚,服务的客户不应该只使用这个类的一部分功能。

       ocp,开放封闭原则。软件实体(类,模块和函数等)应该是可以扩展的,但是不可以修改。

       lrp,李氏替换原则。子类型必须可以替换它们的基类型。

       dip,反转依赖原则。高层模块不应该依赖于底层模块,二者都应依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。

       isp,接口分离原则。不应该强迫客户依赖于它们不用的接口。

       简单记录一下几个设计原则,我觉得应该要记住一些例子,以便以后能在实际编程中时时反省,但是我又不怎么愿意在这里详细的转述书中的例子,更多详细内容还是看书比较好。

       今天晚上打桌球去了,感觉有些精力不济,至此。