文档章节

咕泡-spring中常用设计模式概述

Java搬砖工程师
 Java搬砖工程师
发布于 2018/08/17 07:59
字数 861
阅读 585
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

  • 设计模式就是经验之谈,供后人借鉴,解决一些具有代表性的问题
  • 设计模式来源于生活,反过来帮助我们更好生活
  • 设计模式提升代码的可读性、可扩展性、维护成本、复杂业务问题
  • 千万不要死记硬背、每个设计模式结合实际生活、穷举法

通常说的23 中

经典设计模式可以通过下表一目了然:

  • 通常来说,设计模式都是混合使用,不会独立应用
  • 利用穷举法充分理解设计模式的应用场景
  • 在平时的应用中,不是用设计模式去生搬硬套,而是根据具体业务问题需要时借鉴

设计模式在应用中遵循六大原则:

a、开闭原则(Open Close Principle)

  • 开闭原则就是说对扩展开放,对修改关闭
  • 在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果
  • 所以一句话概括就是:为了使程序的扩展性好,易于维护和升级
  • 想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点

b、里氏代换原则(Liskov Substitution Principle)<子类基类替换原则>

  • 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一
  • 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现
  • LSP 是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为
  • 里氏代换原则是对“开-闭”原则的补充
  • 实现“开-闭”原则的关键步骤就是抽象化
  • 基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范

c、依赖倒转原则(Dependence Inversion Principle)

  • 是开闭原则的基础
  • 具体内容:针对接口编程,依赖于抽象而不依赖于具体

d、接口隔离原则(Interface Segregation Principle)

  • 使用多个隔离的接口,比使用单个接口要好
  • 还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便
  • 所以上文中多次出现:降低依赖,降低耦合

e、迪米特法则(最少知道原则)(Demeter Principle)

  • 一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立

f、合成复用原则(Composite Reuse Principle)

  • 尽量使用合成/聚合的方式,而不是使用继承

设计模式之间的关系图

Java搬砖工程师
粉丝 38
博文 831
码字总数 365827
作品 0
南京
程序员
私信 提问
加载中
请先登录后再评论。
高效 Java Web 开发框架--JessMA

JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组件),集成了 Action 拦截...

伤神小怪兽
2012/11/13
9.3K
3
eternal mvc 框架--eternal

spring在设计上真博大精深啊,无论从哪点来说,都非常不错,当然啦大家一直说他的配置麻烦,这应该是人家的设计思想吧,把每个类都看成一个bean,以xml的方式配置关系,就像java的面向对象,...

青青小树
2013/01/09
1.3K
0
Web 前端 UI 框架--Atlassian AUI

Atlassian User Interface (AUI) 是一套类似于 Bootstrap 的前端 UI 组件库,是一套 JS 和 CSS 的组合,提供了各种 Web 开发中常用的 UI 组件:按钮、表单、网格、Tab、导航等。 UI 风格有点...

匿名
2013/05/10
9.6K
4
数据库结构比较工具--dbcompare

数据库结构比较工具,目前支持mysql,oracle,sql server. 概述: 在设计开发过程中经常会出现开发库与测试库不一致,测试库与生产库不一致,每次手工比对是个辛苦的活。 以前用java写过一个数...

dbcompare
2013/06/25
5.8K
0
疯狂Spring Cloud连载(29)微服务跟踪概述

本文节选自《疯狂Spring Cloud微服务架构实战》 京东购买地址:https://item.jd.com/12256011.html 当当网购买地址:http://product.dangdang.com/25201393.html Spring Cloud教学视频:htt...

杨大仙的程序空间
2018/01/09
557
0

没有更多内容

加载失败,请刷新页面

加载更多

DCASE2020之声学场景分类优秀方案总结 - 知乎

DCASE(Challenge on Detection and Classification of Acoustic Scenes and Events),即声学场景和事件检测及分类竞赛,是世界范围内权威的声学比赛,从2013年至今已经成功举办了六届,随着越...

osc_sb30h1xb
9分钟前
0
0
百度资深JAVA程序员开源5000 页 Java 人必备学习手册开发下载!

今天给大家分享一套百度资深JAVA程序员开源在github的 5000 页的 Java 学习手册,新鲜出炉!此手册内容专注 Java技术,包括 JavaWeb,SSM,Linux,Spring Boot,MyBatis,MySQL,Nginx,Git...

倪升武
今天
0
0
自媒体多平台管理工具,管理多个账号一键发布

现在绝大多数人都认为自媒体账号运营操作起来很麻烦,尤其是对那些做收益的工作室来说,一个人管理那么多账号,登陆起来也很麻烦,在你认为很麻烦的时候,其实我们可以借助一些工具来帮助我们...

osc_e4tx8h6g
10分钟前
0
0
CVE-2017-0261及利用样本分析

CVE-2017-0261及利用样本分析 注意事项:1.本篇文章由Gcow安全团队复眼小组的ERFZE师傅原创,未经许可禁止转载2.本篇文章一共2313字,39张图,预计用时20分钟3.文中提及的方法仅供参考学习,若用在...

辞令_WhITECat安全团队
今天
0
0
fatal error: openssl/evp.h: 没有那个文件或目录

在陆佳华《嵌入式系统软硬件协同设计实战指南 第2版》一书的第13章节 编译U-boot时会遇到2个错误。原因很简单,就从一开始的错误提示着手: fatal error: openssl/evp.h: 没有那个文件或目录...

osc_8nnvoyb1
11分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部