《Java设计模式及实践》—1.5 设计模式和原则

举报
华章计算机 发表于 2019/07/22 10:49:48 2019/07/22
【摘要】 本节书摘来自华章计算机《Java设计模式及实践》一书中的第1章,第1.5.1节,[印度] 卡马尔米特·辛格(Kamalmeet Singh)[荷兰] 艾德里安·伊恩库列斯库(Adrian Ianculescu) 著[罗马尼亚] 路西安-保罗·托尔耶(Lucian-Paul Torje) 张小坤 黄 凯 贺 涛 译.

1.5 设计模式和原则

无论你是在大型团队中工作还是在单人项目中工作,软件开发都不仅仅是编写代码。构建应用程序的方式对软件应用程序的成败有很大影响。当我们谈论一个成功的软件应用程序时,不仅讨论应用程序如何执行它应该做的事情,还讨论在开发它时付出了多少努力,以及它是否易于测试和维护。如果没有以正确的方式完成,那么暴涨的开发成本将会导致没人能接受这个应用程序。

创建软件应用程序是为了满足不断变化和发展的需求。一个成功的应用程序还应该提供一种简单的方法来扩展它以满足不断变化的期望。

幸运的是,我们不是第一个遇到这些问题的人。有一些问题已经被开发人员所发现并总结了解决方案。如果在设计和开发软件时应用一组面向对象的设计原则和模式,则可以避免或解决这些常见问题。

面向对象的设计原则也被称为SOLID。在设计和开发软件时可以应用这些原则,以便创建易于维护和开发的程序。SOLID最初是由Robert C. Martin所提出的,它们是敏捷软件开发过程的一部分。SOLID原则包括单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。

除了前面提到的设计原则外,还有面向对象的设计模式。设计模式是可以应用于常见问题的通用可重用解决方案。遵循克里斯托弗·亚历山大的概念,设计模式首先被Kent Beck和Ward Cunningham应用于编程,并于1994年因一本名为《Gang Of Four(GOF)》的书而广为流传。下面我们将介绍SOLID设计原则,接下来的几章将介绍设计模式。

1.5.1 单一职责原则

单一职责原则是一种面向对象的设计原则,该原则指出软件模块应该只有一个被修改的理由。在大多数情况下,编写Java代码时都会将单一职责原则应用于类。

单一职责原则可被视为使封装工作达到最佳状态的良好实践。更改的理由是:需要修改代码。如果类需要更改的原因不止一个,那么每个类都可能引入影响其他类的更改。当这些更改单独管理但影响同一模块时,一系列更改可能会破坏与其他更改原因相关的功能。

另一方面,每个更改的职责/理由都会增加新的依赖关系,使代码不那么健壮,更难以修改。

在示例中,我们将使用数据库来持久保存对象。假设对Car类添加方法来处理增、删、改、查的数据库操作,如图1-9所示。

image.png

在这种情况下,Car不仅会封装逻辑,还会封装数据库操作(两个职责是改变的两个原因)。这将使我们的类更难维护和测试,因为代码是紧密耦合的。Car类将取决于数据库,如果将来想要更改数据库系统,我们必须更改Car代码,这可能会在Car逻辑中产生错误。

相反,更改Car逻辑可能会在数据持久性中产生错误。

解决方案是创建两个类:一个用于封装Car逻辑,另一个用于负责持久性。如图1-10所示。

image.png


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。