大话设计模式感悟(4)——六大原则

        三原则一法则是指:单一职责原则(SRP),开放-封闭原则(OPC),依赖倒转原则,迪米特法则,里氏代换原则,接口隔离原则(LSP)。

一、六大原则定义。

       1.单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。就像现在的电话由于职责过多,有照相,听音乐,打电话等等很多职责,这样的话照相时相片的画质没有照相机的好,听音乐也没有音响的效果好。编程也一样如果一个类承担的职责过多,就等于把这些职责耦合在一起一个职责的变化可能会削弱或者抑制这个类完成其他职责能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。

       2.开放-封闭原则:软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。对于扩展是开放的,对于更改是封闭的。这样能使得软件面临需求更改时却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新的版本。

     3.依赖倒转原则:

         抽象不应该依赖细节,细节应该依赖与抽象。

         A.高层模块不应该依赖底层模块。两个都应该依赖抽象。

         B.抽象不应该依赖细节。细节应该依赖抽象。

         抽象:就是指接口或者抽象类。

         细节:实现类,可以被new出来的类。

     4.里氏代换原则:子类型必须能够替换掉它们的父类型。

     5.迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。举个例子:网购已经成为现在我们的大的趋势,当我们看到一件衣服想问问衣服的大小,只要利用一些聊天软件就可以解决这个问题。我们分析一下这个过程。我们询问店家的时候我们和店家并不认识,而且也不是直接的对话,而是利用一个聊天软件这个第三方来与店家对话的。这就是迪米特法则的应用。

     6.接口隔离原则:1、客户端不应该依赖它不需要的接口。2、类间的依赖关系应该建立在最小的接口上。

 

二、六大原则分析。

___________________

参考资料:

赵杰的六大原则

 

posted @ 2012-05-13 20:48  夏至冬末  阅读(166)  评论(0编辑  收藏  举报