当前位置:编程学习 > JAVA >>

设计模式(1)——原则

随着面向对象的发展,面向对象已经逐渐的取代了原有的面向过程的编程方法,它使得以前存在的软件不容易维护、灵活性差、不容易扩展等大量问题能够得到解决,而设计模式是我们程序员在多年的工作经验中的总结,它使得程序程序更加灵活、容易修改、易于复用,是解决软件存在大量问题的一种方法。

 


         在下面的五到六篇博客中我对23中设计模式的内容和原则等进行一下小小的总结和归纳。本篇博客是对设计模式的原则的总结。

 


         设计模式分为下面几个原则:单一职责、开放—封闭、依赖倒转、里氏代换、合成聚合复用、迪米特法则、接口隔离。下面对这些原则一一的解释一下:

 


         单一职责:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责太多,就等于将这些职责耦合在了一起,一个职责的变化可能会抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生的时候,设计会遭到意想不到的破坏。

 


         开放—封闭:就是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。对于扩展是开发的,对于修改是封闭的。模块总会存在一些无法对之封闭的变化,不可能完全封闭,设计人员应该预先猜测出最可能发生变化的种类,然后构造抽象来隔离变化,变化发生的时候立即采取行动。面对需求,对程序的改动是通过增加新代码,而不是更改现有的代码。

 


         依赖倒转:A. 高层模块不应该依赖低沉模块,两个都应该依赖抽象。B.抽象不应该依赖细节,细节应该依赖抽象。也就是依赖抽象不依赖具体。这个原则可以说是面向对象的标志,依赖具体的实现都是面向过程的。

 


         里氏代换:子类型必须能够替换掉他们的父类型。只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础之上增加新的功能。正是由于子类型的可替换性才使得父类的模块在无需修改的情况下就可以扩展。

 


         组合聚合复用:组合是体现“部分整体”关系的结构(树——树枝,树叶),由于组合可以形成层次结构,不断的递归下去可以形成庞大俄一个组织,组合关系可以使用户一致的使用组合结构和单个对象。聚合即“has—a”关系(大学——二级学院)。

 


         迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果一个类需要调用另一个类的某一个方法的话,可以通过第三种转发这个调用。在类的结构设计上,每一个类都应当降低成员的访问权限,根本思想是强调类之间的松耦合。这种法则也叫最少知识原则,就是说一个对象应该对其他对象有尽可能少得了解,不合陌生人说话。

 


         接口隔离:这个法则和迪米特法则是相通的,迪米特法则是目的,而接口隔离是规范,为了减少耦合性,需要用接口来约束类,达到迪米特法则的要求

作者“许德鹏的专栏”
 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,