设计模式学习笔记之面向对象的五大原则

在面向对象的开发中,每个人都系统的理解和抽象都可能会有区别,因此设计出的系统类的属性和方法也会有区别,怎么来衡量一个系统中的类的设计是否合理呢?在面向对象的领域有五大原则来进行评判。

1、单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担了太多的职责,那么这些职责就相当于耦合在了一起,其中一个职责的变化都可能会影响或者弱化这个类承担其他职责的能力,甚至会导致职责出现混乱。因此在我们的类设计中,要尽量遵守这个原则。

2、开放--封闭原则:软件实体(包括类、模块、函数等)应该只能扩展,不能修改。这个原则体现了两种观念:实体应该是对扩展开放,但是对修改应该是封闭的。在设计系统之初,不要有需求实现后就不会更改的心态,当有变化产生的时候,我们可以创建抽象来隔离产生的变化。要能达到:面对新的需求不是更改原有的代码,而是通过增加新的代码来实现。物极必反,对于应用程序的每个部分都特意的进行抽象也不是好事情,拒绝不成熟的抽象和创建必要的抽象同等重要。

3、依赖倒转原则:抽象不应该依赖细节的实现,同时细节的实现应该依赖抽象,要针对接口编程,而不要针对实现编程。接口是稳定的,但是实现确实变化的。依赖倒转原则是面向对象编程的标志,在编程的过程中,考虑的是如何针对抽象编程,而不是针对细节编程,即程序中所有的依赖都终止于抽象类或者接口,那这就是面向对象的编程,反之就是过程化的设计。

4、里氏代替原则:在程序代码中,子类型必须能替换的他们的父类型。只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也可以在父类的基础上增加新的行为。

5、迪米特原则:如果两个类不用直接通信,那么这两个类就不应该产生彼此交互,如果其中某一个类需要调用另外一个类的某个方法,可以通过第三个类进行中转。类之间的耦合性越弱,类就越容易被复用,一个弱耦合的类被修改,不会对有关系的类造成波及.同时在类的设计上,都应该尽量降低类其成员被访问的权限。

posted @ 2012-07-12 17:24  小马喝水  阅读(162)  评论(1编辑  收藏  举报