java五⼤原则_Java五⼤原则
1、单⼀职责
不论是在设计类,接⼝还是⽅法,单⼀职责都会处处体现,单⼀职责的定义:我们把职责定义为系统变化的原因。所有在定义类,接⼝,⽅法的时候。定义完以后再去想⼀想是不能多于⼀个的动机去改变这个类,接⼝,⽅法。如果答案是肯定的,说明定义的类,接⼝,⽅法则多于⼀个职责。故违背单⼀职责,遇到这种情况应该重新细分职责,直到不会出现多种职责的类,接⼝⽅法为⽌(发现职责,并把那些职责相互分离)。单⼀职责的为最简单的五种原则之⼀。在软件设计的过程中处处体现。⽆处不在。
2、开闭原则
开闭原则是指类、模块、⽅法是可以扩展的,但不可以修改。开即对扩张开放,闭即对修改关闭。开闭原则的应⽤体现在,开发⼈员应该仅仅对程序中频繁出现变化的地⽅进⾏抽象(封装变化点)。对变化点的封装即对变化的修改关闭。对于变化的不确定性,可随时扩展。即 继承的使⽤。抽象类的运⽤。
3、替换原则(Is-A)
替换原则即是总是保证⼦类可以替换它的基类。
替换原则的实现。对于⼀组具有类似属性,⽅法,变量的类。我们可以提取公共属性,⽅法,变量做为⼀个基类(抽象类或者类),使这⼀组类继承基类,重写虚⽅法。现在这些继承的类和基类的关系符合Is-A。如基类为鸟,则继承类可以为⿇雀,燕⼦。我们可以说⿇雀Is-A鸟,燕⼦Is-A鸟。
在项⽬中所有使⽤⼦类的地⽅都可⽤⽗类替换,但在调⽤⽅法的时候 ,即呈现⾯向对象编程的多态性。即替换原则,⾮常重要的原则,也是⽐较对难的原则。
4、依赖倒置原则
a、⾼层模块不应该依赖于低层模块。⼆者都应该依赖于抽象
b、抽象不应该依赖于细节。细节应该依赖于抽象。
在⾯向过程的开发语⾔中分析和设计,总是创建⼀些⾼层模块去调⽤低层模块、策略依赖于细节的软件结构。实际上这种⽅法的⽬的就是要定义⼦程序层次结构,该结构 描述了⾼层模块怎样调⽤低层模块。⽽设计良好的⾯向对象的程序,正好“倒置”了这种依赖关系。⾼层模块不再依赖于低层模块,从⽽低层模块的修改不会影响到⾼层模块,并且⾼层模块也是能⾮常容易的被重⽤,⾼层模块和低层模块都影响都依赖于抽象。这样也⾮常符合强内聚松耦合的编程思想。故该原则也是框架设计的核⼼原则。
使⽤传统的过程化程序设计所创建出来的依赖关系结构,策略是依赖于细节的,这是糟糕的,因为这样会使策略受到细节改变的影响,⾯向对象的程序设计倒置了依赖关系结构,全程细节和策略都依赖抽象,并且常常是客户程序拥有服务接⼝。
事实上,这种依赖关系的倒置正是好的⾯向对象设计 的标志所在,使⽤何种语⾔来编写程序是⽆关紧要的。如果程序的依赖关系是倒置的,它就是⾯向对象的设计。如果程序的依赖关系不是倒置的,它就是过程化的设计。
依赖倒置原则是实现许多⾯向对象技术所宣称的好处的基本低层机制。它的正确应⽤对于创建可重⽤的框架来说是必需的。同时它对于构建在变化⾯前富有弹性的代码也是⾮常重要的,由于抽象和细节彼此隔离,所以代码也⾮常容易维护。
5、接⼝隔离原则
应该说该原则是处理现有“胖”接⼝所存在的缺点。如果类的接⼝不是内聚的,就表⽰该类具有“胖”接⼝。换句话说“胖”接⼝可以分解成多组⽅法。每⼀组⽅法都服务于⼀组不同的客户程序。这样,量引客户程序可以使⽤⼀组成员函数,⽽其他客户程序可以使⽤其他组的成员函数。
接⼝隔离的⽅法有两种(分享客户就是分离接⼝):1、使⽤委托(此委托⾮委托[delegate])分离接⼝
使⽤委托即,创建⼀个委托类,⽤此类去实现分离后的其它接⼝中的⽅法。2、使⽤多重继承分离接⼝、
此⽅法,即将现有“胖”接⼝分成供不同客户程序调⽤的两个或多个接⼝,⽽需要实现多个接⼝的客户程序,则使⽤多重继承来实现。
抽象类的使用这两种⽅法是实现接⼝隔离的全部⽅法,其中第⼆种⽅法使⽤较普遍,也⽐较简单。⽽第⼀种⽅法使⽤起来相对⽐较复杂,⽽且在使⽤委托的过程中也会产⽣重复的对象,则占⽤运⾏时间和内存开销。有的时候第⼆种⽅法是必须的,第⼀种⽅法是不能使⽤的。如:利⽤委托对象所做的转换是必需的,或者不同的时候会需要不同的转换。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论