
Java设计模式学习
设计模式学习内容来自尚硅谷韩顺平老师,B站寻找视频学习,设计模式更多的是依据六大基本原则来对Java的扩展,通过设计模式,类之间解耦合。使用类图表示设计模式思想能让我们更加清晰的认识什么是设计模式的思想。
小狮子程序开发
这个作者很懒,什么都没留下…
展开
-
设计模式学习——设计模式概论与分类
设计模式设计模式介绍设计模式类型单例设计模式单例模式的介绍单例模式有八种方式:设计模式介绍设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验、模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践,这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式的本质提高 软件的维护性,通用性和扩展性,并降低软件的复杂度<设计模式>是经典的书,作者是Erich Gamma、Richard Helm、Ralph原创 2020-10-27 15:06:09 · 176 阅读 · 0 评论 -
设计模式学习——设计模式的七大原则
设计模式设计模式七大原则概括单一职责原则:接口隔离原则:依赖倒置原则:里氏替换原则:迪米特法则:又称之为最少知道原则,合成复用原则:学完七大原则的思想,做一个总结分享给各位,欢迎指错。设计模式七大原则概括单一职责原则:一个类只负责一项职责。接口隔离原则:客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小接口上。依赖倒置原则:1 高层次的模块不应该依赖低层次的模块,二者都应该依赖其抽象。2 抽象不应该依赖细节,细节应该依赖抽象。3 依赖倒置的中心思想是面向接口编程。4原创 2020-08-25 00:36:46 · 242 阅读 · 0 评论 -
设计模式学习——类图
UML类图前言UML基本介绍UML 类图类图——依赖关系(Dependence)类图——泛化关系(generalization)类图——实现关系(Implementation)类图——关联关系(Association)类图——聚合关系(Aggregation)类图——组合关系(Composition)前言类图是描述类与类之间的关系的,是UML图中最核心的在讲解设计模式时,我们必然会使用类图,为了能够把设计模式学到位,需要首先了解类图UML基本介绍UML——Unified modeling l原创 2020-08-26 21:09:16 · 343 阅读 · 0 评论 -
设计模式学习——单例模式
单例设计模式单例模式的介绍所谓类的单例设计模式,就是采用一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)单例模式有八种方式:饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒汉式(线程安全,同步代码块)双重检查静态内部类枚举...原创 2020-08-27 21:30:03 · 244 阅读 · 0 评论 -
设计模式学习——工厂模式
工厂设计模式简单工厂模式基本介绍工厂方法模式基本介绍简单工厂模式基本介绍简单工厂模式属于创建型模式,是工厂模式的一种,简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式。简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为(代码)在软件开发中,当我们会用到大量的创建某种、某类或者某批对象时,就会使用到工厂模式。简单工厂模式类图实例:简单工厂模式java实现代码://Pizza抽象类public abstract cl原创 2020-08-29 22:59:00 · 346 阅读 · 0 评论 -
设计模式学习——原型模式
原型模式原型模式基本介绍原型模式类图实例原型模式java代码实例原型模式在Spirng框架中源码分析浅拷贝基本介绍浅拷贝代码实例:深拷贝基本介绍深拷贝代码实例:方式一:重写clone方法方式二:通过对象序列化来实现深拷贝(推荐使用)原型模式基本介绍原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节。工作原理:通过将一个原型对象传给那个要发动创建的对象,原创 2020-08-30 17:02:46 · 338 阅读 · 0 评论 -
设计模式学习——建造者模式
建造者模式建造者模式基本介绍建造模式的四个角色建造者模式类图实例建造者模式java代码实例建造者模式在JDK的应用和源码分析源码中建造者模式角色分析建造者模式的注意事项和细节建造者模式基本介绍建造者模式又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造模式的四个原创 2020-08-31 22:56:02 · 205 阅读 · 0 评论 -
设计模式学习——适配器模式
适配器模式适配器模式基本介绍工作原理类适配器模式类适配器模式介绍类适配器模式类图实例类适配器模式代码实例类适配器模式注意事项和细节对象适配器模式对象适配器模式介绍对象适配器模式类图实例对象适配器模式代码实例对象适配器模式注意事项和细节接口适配器模式接口适配器模式介绍接口适配器模式类图实例接口适配器模式代码实例适配器模式在SpringMVC框架应用的源码分析Spring MVC的工作流程适配器模式源码分析DispatchServlet类图实例适配器模式的注意事项和细节博主感言:设计模式更多的是一个思想,而ja原创 2020-09-01 23:33:07 · 344 阅读 · 0 评论 -
设计模式学习——桥接模式
桥接模式桥接模式基本介绍桥接模式(Bridge)-原理类图原理类图说明:桥接模式代码实例桥接模式基本介绍桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种结构型设计模式Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象与行为实现分离开来,从而保持各部分的独立性以及应对他们的功能扩展。桥接模式(Bridge)-原理类图原理类图说明:Client类:桥接模式的调用者抽象类原创 2020-09-09 21:34:06 · 491 阅读 · 0 评论 -
设计模式学习——装饰者模式
装饰者模式装饰者模式定义类图实例代码实例装饰者模式在JDK应用的源码分析装饰者模式定义装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp)。类图实例代码实例Drink 抽象类public abstract class Drink { public String des; //描述 private float price=0.0f; public String getDes() {原创 2020-09-15 22:55:19 · 141 阅读 · 0 评论 -
设计模式学习——组合模式
组合模式组合模式基本介绍原理类图解决的问题类图实例代码实例jdk中的源码分析HashMap的类图实例组合模式的注意事项和细节 组合模式基本介绍组合模式,又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式。组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能够让客户以一致的方式处理个别对象以及组合对象。原理类图对原理结构图说明即组合模式的原创 2020-09-26 19:05:55 · 227 阅读 · 0 评论 -
设计模式学习——外观模式
外观模式基本介绍原理类图代码实例外观模式在MyBatis框架的源码分析源码类图外观模式的注意事项和细节基本介绍外观模式(Facade),也叫"过程模式",外观模式为子系统中的一组接口提供了一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。原理类图说明(外观模式的角色分析):外观类(Facade):为调用端提供统一的调用接口,外观类知道原创 2020-09-28 00:18:48 · 189 阅读 · 0 评论 -
设计模式学习——享元模式
享元模式基本介绍原理类图类图实例代码实例享元模式在JDK-Integer的应用源码分析享元模式的注意事项和细节基本介绍享元模式(Flyweight Pattern),也叫蝇量模式:运用共享技术有效地支持大量细粒度的对象。常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个。享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从缓原创 2020-09-29 00:00:03 · 143 阅读 · 0 评论 -
设计模式学习——代理模式
代理模式基本介绍静态代理静态代理的基本介绍静态代理类图实例静态代理代码实例静态代理优缺点动态代理动态代理模式基本介绍动态代理类图实例动态代理代码实例Cglib代理Cglib代理模式得基本介绍Cglib代理模式类图实例Cglib代理模式代码实例代理模式(Proxy)的变体基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问,即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安原创 2020-10-01 19:17:04 · 398 阅读 · 0 评论 -
设计模式学习——模板方法模式
模板方法模式基本介绍模板方法模式类图实例:模板方法模式代码实例:模板方法的钩子方法模板方法模式在Spring框架应用的源码分析模板方法模式在Spring框架应用的源码类图基本介绍模板方法模式,又叫模板模式,在一个抽象类公开定义了执行它的方法的末班,它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。简单说,模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤。这种类型的设计模式属于行为型模式。原创 2020-10-03 00:38:04 · 232 阅读 · 0 评论 -
设计模式学习——命令模式
命令模式基本介绍原理类图命令模式的类图实例命令模式的代码实例基本介绍命令模式:在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求得接收者是谁,也不知道被请求得操作是哪个。我们只需要在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计。命令模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命令模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作。原理类图原创 2020-10-04 13:34:03 · 174 阅读 · 0 评论 -
设计模式学习——访问者模式
访问者模式基本介绍原理类图访问者模式的类图实例访问者模式的代码实例基本介绍访问者模式,封装一些作用于某种数据结构的各元素的操作,它可以再不改变数据结构的前提下定义作用于这些元素的新的操作。主要将数据结构与数据操作分离,解决数据结构和操作耦合性问题。访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口。访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联),同时需要避免让这些操作“污染”这些对象的类,可以选用访问者模式解决。原原创 2020-10-04 16:18:58 · 158 阅读 · 0 评论 -
设计模式学习——迭代器模式
迭代器模式迭代器模式的介绍原理类图迭代器模式实例类图迭代器模式实例代码迭代器模式的介绍迭代器模式(Iterator Pattern)是常用的设计模式,属于行为型模式如果我们的集合元素是用不同的方式实现的,有数组、还有java的集合类、或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。迭代器模式,提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构。原理类图原创 2020-10-16 10:47:20 · 412 阅读 · 1 评论 -
设计模式学习——观察者模式
观察者模式基本介绍观察者模式实例类图观察者模式实例代码观察者模式在JDK应用的源码分析基本介绍观察者模式 (Observer Pattern) 是一种"发布者-订阅者"的模式.有时候也被称为"模型视图模式","源-监听者模式"等. 在这种模式中,由一个目标对象来管理所有依赖与它的观察者对象,并且当这个目标对象自身发生改变时,会主动向它的观察者们发出通知.观察者模式实例类图观察者模式实例代码//接口,让WeatherData 来实现public interface Subject {原创 2020-10-16 16:28:57 · 183 阅读 · 0 评论 -
设计模式学习——中介者模式
中介者模式基本介绍原理类图中介者模式的类图实例中介者模式的代码实例中介者模式的注意事项和细节基本介绍中介者模式(Mediator Pattern),用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式属于行为型模式,使代码易于维护比如MVC模式,C(Controller控制器)是M(Model模型)和V(View视图)的中介者,在前后端交互时起到了中间人的作用。原理类图对原理类图的说明-即(中介者模式原创 2020-10-20 14:41:00 · 183 阅读 · 0 评论 -
设计模式学习——备忘录模式
备忘录模式基本介绍原理类图原理代码备忘录模式的实例类图备忘录模式的实例代码备忘录模式的注意事项和细节基本介绍备忘录模式(Memento Pattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达到的共同意见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原来的数原创 2020-10-20 16:03:09 · 219 阅读 · 0 评论 -
设计模式学习——解释器模式
解释器模式基本介绍基本介绍在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器。解释器模式(Iterpreter Pattern):是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式)应用场景应用可以将一个需要解释执行的语言中的句子表示为一个抽象语法树一些重复出现的问题可以用一种简单的语言来表达..原创 2020-10-22 21:56:14 · 412 阅读 · 0 评论 -
设计模式学习——状态模式
状态模式基本介绍原理类图状态模式类图实例状态模式代码实例状态模式注意事项和细节基本介绍状态模式(state Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换。当一个对象的内在状态发生改变时,允许改变其行为,这个对象看起来像是改变了其类。原理类图对原理类图的说明-即(状态模式的角色及职责)Context类 为环境角色,用于维护ConcreteState实例,这个实例定义当前状态State 是抽象状态角色,原创 2020-10-22 23:17:49 · 167 阅读 · 0 评论 -
设计模式学习——策略模式
策略模式原理类图策略模式的实例类图策略模式的代码实例策略模式在JDK-Arrays 应用的源码分析策略模式的注意事项和细节### 基本介绍1. 策略模式中(Stractegy Pattern)中,定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。2. 这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出去;第二、针对接口编程而不是具体类(定义了策略接口);第三、多用组合/聚合,少用继承(客户通过组合方式使用策略)原理类图对原理类图的说明,即原创 2020-10-24 14:45:48 · 166 阅读 · 0 评论 -
设计模式学习——职责链模式
职责链模式基本介绍职责链模式的实例类图职责链模式的实例代码职责链模式在SpringMvc的源码分析职责链模式的注意事项和细节基本介绍职责链模式(Chain of Responsibility Pattern),又叫责任链模式,为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,以此类推。这种类型的设计模式属于行为型模式。### 原理类图![原创 2020-10-27 00:58:40 · 205 阅读 · 0 评论