java程序10个面向对象设计原则.docx

上传人:1564****060 文档编号:94237801 上传时间:2023-07-27 格式:DOCX 页数:5 大小:14.41KB
返回 下载 相关 举报
java程序10个面向对象设计原则.docx_第1页
第1页 / 共5页
java程序10个面向对象设计原则.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《java程序10个面向对象设计原则.docx》由会员分享,可在线阅读,更多相关《java程序10个面向对象设计原则.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 java程序10个面向对象设计原则 我们第一个面对对象设计原则是:DRY ,从名称可以看出DRY(dont repeat yourself)意思是不写重复代码,而是抽象成可复用的代码块。假如您有两处以上一样的代码块,请考虑把它们抽象成一个单独的方法;或者您屡次使用了硬编码的值,请把它们设置成公共常量。这种面对对象设计原则的优点是易于维护。重要的是不要滥用此原则,重复不是针对代码而是针对功能来说。它的意思是,假如您使用通用代码来验证OrderID和SSN,这并不意味着它们是一样的或者他们今后将保持不变。通过把通用代码用于实现两种不同的功能,或者您把这两种不同的功能亲密地联系在一起;当您的Ord

2、erID格式转变时,您的SSN验证代码将会中断。所以要留神这种耦合,而且不要把彼此之间没有任何关系却类似的代码组合在一起。 封装常常修改的代码 Encapsulate What Changes 在软件领域永久不变的是“变化”,所以把您认为或疑心将来要被修改的代码封装起来。这种面对对象设计模式的优点是:易于测试和维护恰当封装的代码。假如您在用Java编程,那么请遵守以下原则:变量和方法的访问权限默认设置为私有,并且逐步放开它们的访问权限,例如从“private”到“protected ”、“not public”。Java中的一些设计模式使用了封装,工厂设计模式就是一个例子,它封装了创立对象的代

3、码而且供应了以下敏捷性:后续生成新对象不影响现有的代码。 翻开/关闭设计原则 OpenClosed Design Principle 类、方法/函数应当是对扩展(新功能)开放,对修改闭合。这是另外一个优雅的SOLID 设计原则,以防止有人修改通过测试的代码。抱负状况下假设您添加了新功能,那么您的代码要经过测试,这就是翻开/关闭设计原则的.目标。顺便说一句,SOLID中的字母“O”指的是翻开/关闭设计原则。 单一职责原则 Single Responsibility Principle(SRP) 单一职责原则是另外一个SOLID设计原则,SOLID中的字母“S”指的就是它。根据SRP,一个类修改的

4、缘由应当有且只有一个,或者一个类应当总是实现单一功能。假如您在Java中的一个类实现了多个功能,那么这些功能之间便产生了耦合关系;假如您修改其中的一个功能,您有可能就打破了这种耦合关系,那么就要进展另一轮测试以避开产生新的问题。 依靠注入/反转原则 Dependency Injection or Inversion principle 不要问框架的依靠注入功能将会给你带来什么好处,依靠注入功能在spring框架里已经很好的得到了实现,这一设计原则的优雅之处在于:DI框架注入的任何一个类都易于用模拟对象进展测试,并且更易于维护,由于创立对象的代码在框架里是集中的而且和客户端代码是隔离的。有多种方

5、法可以实现依靠注入,例如使用字节码工具,其中一些AOP(面对切面编程)框架如切入点表达式或者spring里使用的代理。想对这种SOLID设计原则了解更多,请看IOC 和 DI设计模式中的例子。 SOLID中的字母“D”指的就是这种设计原则。 优先使用组合而非继承 Favor Composition over Inheritance 假如可以的话,要优先使用组合而非继承。你们中的一些人可能为此争辩,但我发觉组合比继承更有敏捷性。组合允许在运行时通过设置属性修改一个类的行为,通过使用多态即以接口的形式实现类之间的组合关系,并且为修改组合关系供应了敏捷性。甚至 Effective Java也建议优先

6、使用组合而非继承。 里氏替换原则 Liskov Substitution Principle LSP 依据里氏替换原则,父类消失的地方可以用子类来替换,例如父类的方法或函数被子类对象替换应当没有任何问题。LSP和单一职责原则、接口隔离原则亲密相关。假如一个父类的功能比其子类还要多,那么它可能不支持这一功能,而且也违反了LSP设计原则。为了遵循 LSP SOLID设计原则,派生类或子类(相对父类比拟)必需增加功能,而非削减。SOLID中的字母“L”指的就是 LSP设计原则。 接口隔离原则 接口隔离原则指,假如不需要一个接口的功能,那么就不要实现此接口。这大多在以下状况发生:一个接口包含多种功能,

7、而实现类只需要其中一种功能。接口设计是一种麻烦的工作,由于一旦公布了接口,您就不能修改它否则会影响实现该接口的类。在Java中这种设计原则的另一个好处是:接口有一个特点,任何类使用它之前都要实现该接口全部的方法,所以使用功能单一的接口意味着实现更少的方法。 编程以接口(而非实现对象)为中心 编程总是以接口(而非实现对象)为中心,这会使代码的构造敏捷,而且任何一个新的接口实现对象都能兼容现有代码构造。所以在Java中,变量、方法返回值、方法参数的数据类型请使用接口。这是很多Java程序员的建议, Effective Java 以及 head first design pattern 等书也这样建

8、议。 代理原则 不要期望一个类完成全部的功能,可以适当地把一些功能交给代理类实现。代理原则的典范是:Java 中的equals 和 hashCode 方法。为了比拟两个对象的内容是否一样,我们让用于比拟的类本身完成比照工作而非它们的调用方。这种设计原则的好处是:没有重复编码而且很简单修改类的行为。 总结 以上全部面对对象的设计原则可以帮忙您写出敏捷、优雅的代码:具有高内聚低耦合的代码构造。理论只是第一步,更重要的是我们要习得一种力量去发觉什么时候使用这些设计原则。去发觉我们是否违反了什么设计原则和影响了代码的敏捷性,但是世界上没有什么是完善的,我们解决问题时不能总去使用设计模式和设计原则,它们大多用于有较长维护周期的大型企业工程。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁