您的位置:首页 > 编程语言 > Java开发

设计模式之设计原则(Java)

2013-09-15 14:59 246 查看
设计原则包括:
1、单一职责原则、
2、里氏替换原则、
3、依赖倒置原则、
4、接口隔离原则、
5、迪米特法则、
6、开闭原则。

1、单一职责原则(Single Responsibility Principle,SRP):
There should never be more than one reason for a class to change.
对于一个类来说,应只专注于一件事和仅有一个引起变化的原因。
我自己的理解是:一个类需要专一完成它所能做的一件事,并不是很多事情都需要这一个类来提供完成,如果需要做其他事,就再创建另一个类。
优点:
a,降低类的负责性;
b,提高类的可读性;
c,提高代码的可维护性和复用性;
d,降低因变更引起的风险。

2、里氏替换原则(Liskov Substitution Principle,LSP):
下面先来说说继承的优点和缺点吧:
优点:
代码共享,减少创建类的工作量,每个子类都拥有父类的所有属性和方法;
提高代码的可重用性;
提高代码的可扩张性;
提高产品或项目的开放性。
缺点:
继承是***性的,拥有父类的属性和方法;
降低代码的灵活性,必须拥有父类的属性和方法;
增强耦合性,父类属性或方法改变,需要考虑子类。
综上所述,继承的“利”大于“弊”,现在用“里氏替换原则”来降低“弊”带来的麻烦。

里氏替换原则的定义有两种:
①:假如对S类型的对象o1,都有类型T的对象o2,使得以S定义的程序P在所有的对象o1都替换成
o2,则程序P的行为没有发生变化,那么T是S的子类型。
②:所有引用基类的地方必须能够透明的使用其子类对象。

体现里氏替换原则的设计模式有:策略模式、组合模式、代理模式。

3、依赖倒置原则(Dependency Inversion Principle,DIP)
面向接口编程——OOD。
高层模块不应该依赖底层模块,两者都依赖其抽象;抽象不依赖细节;细节应该依赖于抽象。
依赖倒置原则是JavaBean、EJB、COM等组件设计模型背后的基本原则。

本质:通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,互不影响,实现模块间的松耦合。
使用此原则的规则:
①每个类,接口或抽象类;②变量的表现类型,接口或抽象类;③类都不从具体类派生;④不重写
基类方法;⑤结合里氏替换原则。
依赖倒置原则在大项目的体现上,优点很明显。

4、接口隔离原则(Interface Segregation Principle,ISP)
两种定义
①客户端不应该依赖他不需要的接口;
②类间的依赖关系应该建立在最小的接口上。
含义:a,一个类对另一个类的依赖性应当是建立在最小的接口上;
b,一个接口代表一个角色,不应当就爱那个不同角色都交给一个接口;
c,不应该强迫客户依赖他们不用的方法。

5、迪米特法则(Law of Demeter,LOD)
也叫做:最少知识原则(Least Knowledge Principle,LKP)
一个类需要调用另一个类的某一方法,可以通过第三者转发这个调用。
减少类之间的关系,降低类之间的耦合,提高类复用率。
设计模式使用迪米特法则的有:外观模式、中介者模式。

6、开闭原则(Open-Closed Principle,OCP)
在面向对象的编程中,开闭原则是最基础的原则,起到总的指导作用,其他原则都是开闭原则的手
段和工具。
①:提高复用性;
②:提高可维护性;
③:提高灵活性;
④:易于测试;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计原则