什么是设计模式

  设计模式(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. js与es6中获取时间戳

    在项目中经常会用到求时间戳的问题,下面是已经封装好的函数,直接使用就可以.1.js常用获取时间戳的方法 // 获取时间戳 var start = new Date().getTime(); conso ...

  2. vue 图片预览插件

    https://github.com/daidaitu1314/vue2-preview //cnpm cnpm install vue2-preview -save //引入 import VueP ...

  3. LeetCode 80 Remove Duplicates from Sorted Array II [Array/auto] <c++>

    LeetCode 80 Remove Duplicates from Sorted Array II [Array/auto] <c++> 给出排序好的一维数组,如果一个元素重复出现的次数 ...

  4. 做个流量站-聚茶吧, 汇聚"茶"的地方

    犹豫了好久,终于下定决心,做一回个人站长了,虽然没啥经验,但毕竟也是IT科班出身了,准备用一年的事件摸索一下内容站和SEO,看看能否积累点经验,赚点小钱. 推酷-靠爬虫起家的内容站 做内容站,站长们都 ...

  5. [LeetCode] Minimum Cost to Merge Stones 混合石子的最小花费

    There are N piles of stones arranged in a row.  The i-th pile has stones[i] stones. A move consists ...

  6. Vue 中动态添加class(使用v-bind:class)

    今天在Vue中动态修改类名,元素的样式就是不改变,类名也没有加上去,里面的问题具体我还是不太清楚,有可能是因为自己不认真,把 :class= 后面的内容的格式给整错了,下面将正确的做法记录一下,便于以 ...

  7. Object-C 编程问题汇总

    Object-C 编程问题汇总 Cocopods 安装时遇见的问题: error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, ...

  8. Lesson 29 Taxi!

    Text Captain Ben Fawcett has bought an unusual taxi and has begun a new serivice. The 'taxi' is a sm ...

  9. vue父子组件及非父子组件通信

    1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent> <child :child-msg="msg" ...

  10. [Swift]LeetCode551. 学生出勤纪录 I | Student Attendance Record I

    You are given a string representing an attendance record for a student. The record only contains the ...