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

上传人:scccc 文档编号:13574497 上传时间:2022-01-17 格式:DOCX 页数:4 大小:68.62KB
返回 下载 相关 举报
java程序10个面向对象设计原则.docx_第1页
第1页 / 共4页
java程序10个面向对象设计原则.docx_第2页
第2页 / 共4页
java程序10个面向对象设计原则.docx_第3页
第3页 / 共4页
java程序10个面向对象设计原则.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《java程序10个面向对象设计原则.docx》由会员分享,可在线阅读,更多相关《java程序10个面向对象设计原则.docx(4页珍藏版)》请在三一文库上搜索。

1、java程序10个面向对象设计原则java 程序 10 个面向对象设计原则本文的宗旨是向那些没有接触过或正处于学习阶段的 Java 程序 员介绍而向对象设计原则。我个人认为OOPS口 SOLID设计原则需要有文章清楚的介绍它们,在此我一定尽力做到这点,但现在请您准 备浏览以下设计模式 ( 原则 ) :DRY - Don trepeatyourself我们第一个而向对象设计原则是:DRY从名称可以看出DRY (don* trepeatyourself) 意思是不写重复代码,而是抽象成可复 用的代码块。如果您有两处以上相同的代码块,请考虑把它们抽象成一个单独的方法; 或者您多次使用了硬编码的值,请

2、把它们设置成 公共常量。这种而向对象设计原则的优点是易于维护。重要的是不 要滥用此原则,重复不是针对代码而是针对功能来说。它的意思是 , 如果您使用通用代码来验证OrderlD和SSN这并不意味着它们是 相同的或者他们今后将保持不变。通过把通用代码用于实现两种不 同的功能,或者您把这两种不同的功能密切地联系在一起;当您的 OrderlD格式改变时,您的SSN佥证代码将会中断。所以要当心这 种耦合,而且不要把彼此之间没有任何关系却类似的代码组合在一 起。封装经常修改的代码EncapsulateWhatChanges在软件领域永远不变的是“变化”,所以把您认为或怀疑将来要 被修改的代码封装起来。这

3、种而向对象设计模式的优点是:易于测 试和维护恰当封装的代码。如果您在用 Java 编程,那么请遵守以下 原则:变量和方法的访问权限默认设置为私有,并且逐步放开它们 的访问权限 , 例如从private ” 到 protected n、 “notpublic ” 。 Java 中的一些设计模式使用了封装,工厂设计模式就是一个例子, 它封装了创建对象的代码而且提供了以下灵活性:后续生成新对象不影响现有的代码。打开 / 关闭设计原则OpenClosedDesignPrinciple类、方法 / 函数应当是对扩展(新功能)开放,对修改闭合。这是 另 外一个优雅的SOLID设计原则,以防止有人修改通过测

4、试的代码。理想情况下假如您添加了新功能,那么您的代码要经过测试,这就是打开 / 关闭设计原则的目标。顺便说一句,SOLID中的字母“0”指的是打开/关闭 设计原则。单一职责原则SingleResponsibilityPrinciple( SRP)单一职责原则是另外一个SOLID设计原则,SOLID中的字母“S”指的 就是它。按照 SRP, 个类修改的原因应当有且只有一个,或 者一个类应 当总是实现单一功能。如果您在Java 中的一个类实现了 多个功能,那么这些功能之间便产生了耦合关系 ; 如果您修改其中的 一个功能,您有可能 就打破了这种耦合关系, 那么就要进行另一轮 测试以避免产生新的问题。

5、依赖注入 / 反转原则DependencyInjectionorlnversionprinciple不要问框架的依赖注入功能将会给你带来什么益处,依赖注入功 能在spring 框架里已经很好的得到了实现,这一设计原则的优雅之处在于:DI 框架注入的任何一个类都易于用模拟对象进行测试, 并 且更易于维护,因为创建对象的代码在框架里是集中的而且和客户 端代码是隔离的。有多种方法可以实现依赖注入,例如使用字节码 工具,其中一些AOP(面向切面编程)框架如切入点表达式或者spring 里使用的代理。想对这种SOLID设计原则了解更多,请看I0C和DI设计模式中的例子。SOLID中的 字母“ D” 指的

6、就是这种设计原则。优先使用组合而非继承FavorComposit i onoverInher itance如果可以的话,要优先使用组合而非继承。你们中的一些人可能 为此 争论,但我发现组合比继承更有灵活性。组合允许在运行时通 过设置属性修改一个类的行为,通过使用多态即以接口的形式实现类之间的组合关系,并且为修改组合关系提供了灵活性。甚至Effectivejava也建议优先使用组合而非继承。里氏替换原则LiskovSubstitut i onPr inc ipleLSP根据里氏替换原则,父类出现的地方可以用子类来替换,例如父 类的 方法或函数被子类对象替换应该没有任何问题。LSP和单一职责原则、

7、接 口隔离原则密切相关。如果一个父类的功能比其子类还要多,那么它可能不支持这一功能,而且也违反了LSP设计原则。为了遵循LSPSOLI股计原则, 派生类或子类 (相对父类比较) 必须增 强功能, 而非减少。 SOLID 中的字母“L”指的就是LSP设计原则。接口隔离原则接口隔离原则指,如果不需要一个接口的功能,那么就不要实现此接口。这大多在以下情况发生:一个接口包含多种功能,而实现 类只需要其中一种功能。接口设计是一种棘手的工作,因为一旦发 布了接口,您就不能修改它否则会影响实现该接口的类。在 Java 中 这种设计原则的另一个好处是:接口有一个特点,任何类使用它之前都要实现该接口所有的方法,

8、所以使用功能单一的 . 接口意味着实 现更少的方法。编程以接口 (而非实现对象)为中心编程总是以接口 (而非实现对象) 为中心, 这会使代码的结构灵活, 而且任何一个新的接口实现对象都能兼容现有代码结构。所以在 Java 中, 变量、方法返回值、方法参数的数据类型请使用接口。这是许多 Java 程序员的建议, Effectivejava 以及 headfirstdesignpattern 等书也这样 建议。代理原则不要期望一个类完成所有的功能,可以适当地把一些功能交给代 理类实现。代理原则的典范是: Java 中的 equals () 和 hashCode() 方法。为了比较两个对象的内容是否相同,我们让用于比较的类本 身完成对比工作而非它们的调用方。这种设计原则的好处是:没有重复编码而且很容易修改类的行为。总结以上所有而向对象的设计原则可以帮助您写出灵活、优雅的代码: 具有高内聚低耦合的代码结构。理论只是第一步,更重要的是我们 要习得一种能力去发现什么时候使用这些设计原则。去发现我们是 否违反了什么设计原则和影响了代码的灵活性,但是世界上没有什 么是完美的,我们解决问题时不能总去使用设计模式和设计原则, 它们大多用于有较长维护周期的大型企业项目。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1