什么是设计模式

  设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。通过对这些设计模式的合理使用能够是我们的系统更加的健壮。

六大设计原则

设计原则 简单说明
单一职责 一个类只负责一项职责
里氏替换原则 子类可以扩展父类的功能,但不能改变父类原有的功能
依赖倒置原则 要依赖于抽象,不要依赖于具体,核心思想是==面向接口编程==
接口隔离原则 建立单一接口,不要建立庞大臃肿的接口,
尽量细化接口,接口中的方法尽量少
迪米特法则
(最少知道原则)
一个对象应该对其他对象保持最少的了解
开闭原则 对扩展开放,对修改关闭

设计模式的分类

类别 说明
创建型模式 对象实例化的模式,创建型模式用于解耦对象的实例化过程。
结构型模式 把类或对象结合在一起形成一个更大的结构。
行为型模式 类和对象如何交互,及划分责任和算法。

设计模式的具体实现

1.创建型模式

  都是用来帮助我们创建对象的!

模式 地址
单例模式 https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87740745
简单工厂 https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87896766
工厂方法 https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87896766
抽象工厂 https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87896766
建造者模式 https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87909002
原型模式 https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87633257

2.结构型模式

  关注对象和类的组织
|模式|地址 |
|--|:--|
| 代理模式| https://dpb-bobokaoya-sm.blog.csdn.net/article/details/86484887|
|适配模式|https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87949811 |
|桥接模式|https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87951434 |
|组合模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88567000 |
|装饰模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88214447 |
|外观模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88569991 |
|享元模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88586998 |

3.行为型模式

  关注系统中对象之间的相互交换,研究系统在运行时对象之间的相互通信和协作,进一步明确对象的职责,共有11中模式
|模式|地址 |
|--|:--|
| 责任链模式| https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89077040|
|命令模式|https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89115420 |
|解释器模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89367802 |
|迭代器模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89077229 |
|中介者模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89077718 |
|备忘录模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89367699 |
|观察者模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/87483479 |
|状态模式|https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89345271 |
|策略模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88222305 |
|模板方法 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/88210977 |
|访问者模式 |https://dpb-bobokaoya-sm.blog.csdn.net/article/details/89367828 |

Java设计模式总结的更多相关文章

  1. java设计模式- (1)单例模式

    参加校园招聘的笔试,发现公司都会考一些java设计模式,所以上网查询相关内容,总结常用的几种单例模式. 单例模式(Singleton Pattern)是 Java中最简单的设计模式之一.这种类型的设计 ...

  2. JAVA 设计模式 桥接模式

    用途 桥接模式 (Bridge) 将抽象部分与实现部分分离,使它们都可以独立的变化. 桥接模式是一种结构式模式. 结构

  3. java设计模式 策略模式Strategy

    本章讲述java设计模式中,策略模式相关的知识点. 1.策略模式定义 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户.策略模式属于对象的 ...

  4. Java设计模式之行为型模式

    行为型模式共11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 策略模式:策略模式的决定权在用户,系统本身提供不同 ...

  5. Java设计模式(三) 抽象工厂模式

    原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...

  6. Java设计模式(十二) 策略模式

    原创文章,同步发自作者个人博客,http://www.jasongj.com/design_pattern/strategy/ 策略模式介绍 策略模式定义 策略模式(Strategy Pattern) ...

  7. Java设计模式(二) 工厂方法模式

    本文介绍了工厂方法模式的概念,优缺点,实现方式,UML类图,并介绍了工厂方法(未)遵循的OOP原则 原创文章.同步自作者个人博客 http://www.jasongj.com/design_patte ...

  8. Java设计模式(一) 简单工厂模式不简单

    摘要:本文介绍了简单工厂模式的概念,优缺点,实现方式,以及结合Annotation和反射的改良方案(让简单工厂模式不简单).同时介绍了简单工厂模式(未)遵循的OOP原则.最后给出了简单工厂模式在JDB ...

  9. Java设计模式(十三) 别人再问你设计模式,叫他看这篇文章

    原创文章,转载请务注明出处 OOP三大基本特性 封装 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类操作,对不可信的进行信息隐藏. 继承 继承是指这样一种能力,它可以使 ...

  10. JAVA 设计模式 状态模式

    用途 状态模式 (State) 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式是一种行为型模式. 结构

随机推荐

  1. 我在B站投稿啦、、、

    我在B站投稿啦....欢迎评论交流... https://www.bilibili.com/video/av31539882/  怎样激活Win10系统修改windows系统账户的名称-mp4 外链: ...

  2. Java_异常处理

    这篇我们聊聊java中的异常.首先我们要知道什么是异常? Exception: exception翻译过来就是“意外”的意思.事实上,异常的本质就是程序的错误,包括程序逻辑错误和系统错误.错误在编写程 ...

  3. pytorch可视化工具visdom

    visdom的github repo: https://github.com/facebookresearch/visdom 知乎一个教程:https://zhuanlan.zhihu.com/p/3 ...

  4. ThreadLocal是否会导致内存泄露

    什么是内存泄露? 维基百科的定义:[内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存],我的理解就是程序失去了对某段内存的控制,那么这段内存就算是泄露了. ThreadLocal为什么会导致 ...

  5. topic的leader显示为none的解决办法

    1.查看kafka的topic详细信息 bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --topic test --describe 配置delete. ...

  6. 深入理解JVM(四)——垃圾回收算法

    我们都知道java语言与C语言最大的区别就是内存自动回收,那么JVM是怎么控制内存回收的,这篇文章将介绍JVM垃圾回收的几种算法,从而了解内存回收的基本原理. stop the world 在介绍垃圾 ...

  7. 算法与数据结构(十二) 散列(哈希)表的创建与查找(Swift版)

    散列表又称为哈希表(Hash Table), 是为了方便查找而生的数据结构.关于散列的表的解释,我想引用维基百科上的解释,如下所示: 散列表(Hash table,也叫哈希表),是根据键(Key)而直 ...

  8. NeuChar 平台使用及开发教程 索引

    什么是 NeuChar? NeuChar 是由盛派(Senparc)团队发布的新一代跨平台服务系统,其中包含了开放的跨平台通讯标准及核心计算模块(Senparc.NeuChar.dll)以及配套的云管 ...

  9. [Swift]LeetCode228. 汇总区间 | Summary Ranges

    Given a sorted integer array without duplicates, return the summary of its ranges. Example 1: Input: ...

  10. [Swift]LeetCode659. 分割数组为连续子序列 | Split Array into Consecutive Subsequences

    You are given an integer array sorted in ascending order (may contain duplicates), you need to split ...