java中的面向对象设计原则

来源:互联网 发布:软件项目组织机构图 编辑:程序博客网 时间:2024/04/29 01:08

java有哪些面向对象设计原则?

答: Java面向对象设计原则有: 开—闭原则、里氏代换原则、依赖倒置原则、接口隔离原则、合成/聚合复用原则、迪米特法则。

 

什么是开—闭原则?(Open-Closed Principle, short for OCP)

答:该原则讲一个软件实体应当对扩展开放,对修改关闭。说的是在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。换言之,应当可以在不必修改源代码的情况下改变这个模块的行为。实现开闭原则的关键是抽象化。在"开—闭"原则中,不允许修改的是抽象的类或者接口,允许扩展的是具体的实现类,抽象类和接口在"开—闭"原则中扮演着极其重要的角色,在设计过程中既要预知可能变化的需求,又要预见所有可能已知的扩展

 

简述里氏代换原则(LSP)

答:该原则严格表达为:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得T1定义的所有程序P在所有的对象o1都代换为o2,程序p的行为没有变化,那么类型T2是类型T1的子类型。换言之,一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能觉察出基类对象和子类对象的区别。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范

 

什么是依赖倒置原则(Dependence Inversion Principle DIP)

答:该原则讲的是:要依赖于抽象,不要依赖于细节实现。简单地说,DIP要求客户端依赖于抽象耦合,依赖倒转原则的表述为:抽象不应当依赖于细节;细节应依赖于抽象;其另一种表述为:要针对接口编程,不要针对实现编程。针对接口编程的意思是指:应当使用java接口和抽象java类进行变量的类型声明、参量的类型声明、方法的返还类型声明以及数据类型的转换等。要保证做到这一点,一个具体的java类应当只实现java接口和抽象java类声明过的方法,而不应该给出多余的方法。

 

简述接口隔离原则(Interface Segregation Principle ISP)

答:该接口讲的是使用多个专门的接口比使用一个总接口要好。换言之,从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小的接口上的。

 

什么是合成/聚合复用原则(Composite/AggregateReuse Principle CARP)

答:合成/复用原则常又叫做合成复用原则。合成/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。该原则的另一个简短表达为:要尽量使用合成/聚合,尽量不要使用继承。

 

什么是迪米特法则(Law of Demeter LoD)

答:迪米特法则又称最少知识原则,就是说一个对象应当对其他对象有尽可能少的了解,可以简述为"不要给陌生人说话"。与该法则相关的一个概念—调用转发(Call Forwarding),其内涵是指某人在需要陌生人帮助时不与陌生人直接打交道,仅需与其熟知该陌生人的朋友打交道即可。

0 0
原创粉丝点击