文档章节

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

Java搬砖工程师
 Java搬砖工程师
发布于 2018/08/17 07:59
字数 861
阅读 37
收藏 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搬砖工程师
粉丝 30
博文 346
码字总数 241976
作品 0
南京
程序员
私信 提问
咕泡-工厂 Factory设计模式笔记

##查看代码:https://gitee.com/jly521/factoryNew.git 个人感悟: 设计模式都是处理复杂问题的,如果问题本身很简单,使用设计模式反而累赘,增加了开发的复杂性 遇到最简单的情况,直接 ne...

职业搬砖20年
2018/08/17
0
0
这些Spring中的设计模式,你都知道吗?

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。 Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行...

Java填坑之路
2018/08/17
0
0
咕泡-适配器 adapter 设计模式笔记

适配器模式(Adapter) Spring AOP 模块对BeforeAdvice、AfterAdvice、ThrowsAdvice 三种通知类型的支持实际上是借助适配器模式来实现的 这样的好处是使得框架允许用户向框架中加入自己想要支...

职业搬砖20年
2018/09/04
0
0
设计模式知识汇总(附github分享)

写在前面 主要内容 为了更系统的学习设计模式,特地开了这样一个基于Java的设计模式【集中营】,都是笔者在实际工作中用到过或者学习过的一些设计模式的一些提炼或者总检。慢慢地初见规模,也...

landy8530
2018/10/10
0
0
关于spring是用注解好,还是用xml好?

最近学习了一下java的工厂设计模式,感觉工厂模式最大的优点和spring的IOC有些相像,比如我们为一个User接口写了多个实现,记为:UserImpl1、UserImpl2,可以很轻松的来回切换实现,对于工厂...

上帝爱众生
2015/05/19
435
6

没有更多内容

加载失败,请刷新页面

加载更多

Windows命令行杀死占用端口的进程

假如要查看的端口号是80: netstat -aon|findstr "80" 这个时候我们会看到下面的 TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448 最后,杀死进程 taskkill /f /t......

hengbao5
9分钟前
0
0
c++ 定义新的异常

#include <iostream> #include <exception> using namespace std; struct MyException : public exception { const char * what () const throw () { return "C++ Exception"; } }; int main......

天王盖地虎626
今天
3
0
PDMan-2.1.1 发布:用心开源,免费的国产数据库建模工具(春节前最后一个版本)

一、软件介绍 PDMan 是一款开源免费的数据库模型建模工具,是PowerDesigner之外另一种更好的选择。支持Windows,Mac,Linux等操作系统,具有上手容易,使用简单的特点。 2018年获得码云GVP (Gi...

O龙猫O
今天
20
0
OSChina 周二乱弹 —— 以后我偷小鱼干养你

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @庞巴哥 :只有这节奏瞬间变得轻松。。。。。。。。。分享Talking Eyes的单曲《In the sun (Extended Version)》: 《In the sun (Extended Ve...

小小编辑
今天
730
10
多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部