设计模式——面向对象设计原则_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 设计模式——面向对象设计原则

设计模式——面向对象设计原则

 2013/8/7 16:08:25  leifengshan  程序员俱乐部  我要评论(0)
  • 摘要:单一职责原则所谓单一职责原则,指的是,一个类应该仅有一个引起它变化的原因。这里变化的原因就是所说的“职责”,如果一个类有多个引起它变化的原因,那么也就意味着这个类有多个职责,再进一步说,就是把多个职责耦合在一起了。这会造成职责的相互影响,可能一个职责的变化,会影响到其他职责的实现,甚至引起其他职责随着变化。开闭原则开闭原则讲的是一个软件实体应当对扩展开放,对修改关闭。这个原则说的是,在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。换言之
  • 标签:模式 设计 设计模式
单一职责原则
所谓单一职责原则,指的是,一个类应该仅有一个引起它变化的原因。
这里变化的原因就是所说的“职责”,如果一个类有多个引起它变化的原因,那么也就意味着这个类有多个职责,再进一步说,就是把多个职责耦合在一起了。
这会造成职责的相互影响,可能一个职责的变化,会影响到其他职责的实现,甚至引起其他职责随着变化。

开闭原则
开闭原则讲的是一个软件实体应当对扩展开放,对修改关闭。
这个原则说的是, 在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。换言之,应当可以在不必修改源代码的情况下改受这个模块的行为。
通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求,使变化中的软件系统有一定的适应性和灵活件。 已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化小的软件系统有一定的稳定性和延续性。
解决问题的关键在于抽象化。在向对象的编程语言里面,可以给系统定义出一个一劳永逸、不再更改的抽象设计,此设计允许有无穷无尽的行为实现。

里氏代换原则
里氏代换原则的严格表达是:一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别。
里氏代换原则是继承复用的基石。只有当衍生类可以替换掉基类,软件单位的功能不会受到影响时,基类才能真正被复用,而衍生类也才能够在基类的基础上增加新的行为。

依赖倒转原则
在面向对象的系统里面,两个类之间可以发生三种不同的耦合关系:
–零耦合关系:如果两个类没有耦合关系,就称之为零耦合。
–具体耦合关系:具体耦合发生在两个具体的(可实例化的)类之间,经出一个类对另外一个具体类的直接引用造成。
–抽象耦合关系:抽象耦合关系发生在一个具体类和一个抽象类之间,使两个必须发生关系的类之间存有最大的灵活性。
简单地说,依赖倒转原则要求客户端依赖于抽象耦合。

接口隔离原则
一个接口对应一个角色,而不是多个角色。如果客户端仅仅需要某一些方法的话,那么就应当向客户端提供这些方法,而不要提供不需要的方法。
这个原则用来处理那些比较庞大的接口,这种接口通常会有交的的操作声明,涉及到很多的职责。在使用这样的接口时,通常会有很多不需要的方法,这就是一种接口污染,因此,这样的接口应当被分离,按照不同的需求分离成不同的接口。

迪米特原则
在软件系统中,一个模块设计得好不好的标志,就是该模块在多大的程度上将自己的内部数据和其他与实现有关的细节隐藏起来。一个设计得好的模块可以将它所有的实现细节隐藏起来,这样一来,模块与模块之间就可以仅仅通过彼此的API相互通情。
这一概念就是“信息的隐藏”,或者叫做“封装”,也就是大家熟悉的软件设计的基本教义之一。信息的隐藏非常重要的原因在于,它可以使各个子系统之间脱耦。这种脱耦化可以有效地加快系统的开发过程,因为可以独立地同时开发各个模块。它可以使维护过程受得容易,因为所有的模块都容易读懂,特别是个必担心对其他模块的影响。
一旦确认某一个模块是性能的障碍时,设计人员可以到对这个模块本身进行优化,而不必担心影响到其他的模块。信息的隐藏可以促进软件的复用。一个系统的规模越大,信息的隐藏就越是重要,而信息隐藏的威力也就越明显。

发表评论
用户名: 匿名