设计模式
hyyyya
在编程路上学习且奋斗的小学徒
展开
-
访问者模式详解附有代码案例分析
访问者模式一、访问者模式的概念与角色(一)、访问者模式的概念(二)、访问者模式的角色二、访问者模式的应用场景三、访问者模式的通用写法四、访问者模式的KPI考核的代码示例五、访问者模式的优缺点(一)、优点(二)、缺点一、访问者模式的概念与角色(一)、访问者模式的概念 访问者模式是一种将数据结构与数据操作分离的设计模式。是指封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。属于行为型模式。 访问者模式的基本思想是:针对系统中拥有固定类型数的对原创 2020-10-21 19:09:36 · 814 阅读 · 0 评论 -
观察者模式详解附有代码案例分析(包含观察者模式使用JDK方式实现)
观察者模式一、观察者模式的概念与角色(一)、观察者模式的概念(二)、观察者的角色二、观察者模式的应用场景三、观察者模式的通用写法四、观察者模式的JDK代码示例——不建议使用(已过时)五、观察者模式的优缺点(一)、优点(二)、缺点一、观察者模式的概念与角色(一)、观察者模式的概念 观察者模式又叫做发布-订阅模式。定义一种一对多的依赖关系,一个主题对象可被多个观察者对象同时监听,使得每当主题对象状态变化时,所有依赖于它的对象都会得到通知并被自动更新。属于行为型模式。 观察者模式的核心是将被观察者原创 2020-10-21 16:02:44 · 827 阅读 · 0 评论 -
解释器模式详解附有代码案例分析
解释器模式一、解释器模式的概念与角色(一)、解释器模式的概念(二)、解释器模式的角色二、解释器模式的应用场景三、解释器模式的通用写法四、解释器模式的四则运算代码案例五、解释器模式的优缺点(一)、优点(二)、缺点一、解释器模式的概念与角色(一)、解释器模式的概念 解释器模式是指给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来接受语言中的句子。是一种按照规定的语法进行解析的模式,属于行为型模式。 解释器模式的作用其实与编译器一样,都是将一些固定的语法进行接受,构建出一原创 2020-10-20 18:29:00 · 644 阅读 · 0 评论 -
中介者模式详解附有代码案例分析
中介者模式一、中介者模式的概念与角色(一)、中介者模式的概念(二)、中介者模式的角色二、中介者模式的应用场景三、中介者模式的通用写法四、中介者模式的优缺点(一)、优点(二)、缺点一、中介者模式的概念与角色(一)、中介者模式的概念 中介者模式又称为调节者模式,用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使得耦合松散,而且可以独立地改变它们之间的交互。属于行为型模式。 中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散耦合。原创 2020-10-19 16:59:20 · 828 阅读 · 2 评论 -
备忘录模式详解附有代码案例分析
备忘录模式一、备忘录模式的概念与角色(一)、备忘录模式的概念(二)、备忘录模式的角色二、 备忘录模式的应用场景三、备忘录模式的代码示例四、备忘录模式的优缺点(一)、优点(二)、缺点一、备忘录模式的概念与角色(一)、备忘录模式的概念 备忘录模式又称为快照模式,是指在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态,属于行为型模式。 备忘录模式本质是从发起人实体类隔离存储功能,降低实体类的职责。同时由于存储信息独立,且存储信息的实体原创 2020-10-18 20:53:04 · 744 阅读 · 2 评论 -
状态模式详解附有代码案例分析(包含状态模式与其他相关设计模式的对比)
状态模式一、状态模式的概念以及角色(一)、状态模式的概念(二)、状态模式的角色二、状态模式的应用场景三、状态模式的代码示例四、状态模式相关的设计模式(一)、状态模式与责任链模式(二)、状态模式与策略模式五、状态模式的优缺点(一)、优点(二)、缺点一、状态模式的概念以及角色(一)、状态模式的概念 状态模式也称为状态机模式,是允许对象在内部状态发送改变时改变它的行为,对象看起来好像修改了它的类,属于行为型模式。 状态模式中类的行为是由状态决定的,不同的状态下有不同的行为。其意图是让一个对象在其内原创 2020-10-18 16:41:48 · 727 阅读 · 0 评论 -
命令模式详解附有代码案例分析(包含命令模式的源码应用分析)
命令模式一、命令模式的概念与角色(一)、命令模式的概念(二)、命令模式的角色二、命令模式的应用场景三、命令模式的代码示例四、命令模式在源码中的应用五、命令模式的优缺点(一)、优点(二)、缺点一、命令模式的概念与角色(一)、命令模式的概念 命令模式是对命令的封装,每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式解耦了请求方和接收方,请求方只需请求执行命令,不用关心命令是怎样被接收,怎样被操作以及被执行等。命令模式属于行为型模式。 命令模式通过原创 2020-10-18 11:59:57 · 1036 阅读 · 0 评论 -
迭代器模式详解附有代码案例分析(包含迭代器模式的源码应用分析)
迭代器模式一、迭代器模式的概念和角色(一)、迭代器模式的概念(二)、迭代器模式的角色二、迭代器模式的应用场景三、迭代器模式的代码示例四、迭代器模式在源码中的应用五、迭代器模式的优缺点(一)、优点(二)、缺点一、迭代器模式的概念和角色(一)、迭代器模式的概念 迭代器模式又称为游标模式,迭代器模式提供一种顺序访问集合/容器对象元素的方法,而又无须暴露集合内部表示。迭代器模式可以为不同的容器提供一致的遍历行为,而不用关心容器内容元素组成结构,属于行为型模式。 迭代器模式的本质是抽离集合对象迭代行为原创 2020-10-18 11:24:12 · 545 阅读 · 2 评论 -
责任链模式详解附有代码案例分析(包含责任链模式与建造者模式的结合代码案例)
责任链模式一、责任链模式的概念与角色(一)、责任链模式的概念(二)、责任链模式的角色二、责任链模式的应用场景三、无使用责任链模式的代码示例四、使用责任链模式的代码示例五、责任链模式与建造者模式的结合六、责任链模式的优缺点(一)、责任链模式的优点(二)、责任链模式的缺点一、责任链模式的概念与角色(一)、责任链模式的概念 责任链模式是将链中每一个节点看作是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一节点对象。当一个请求从链式的首端发出时,会沿着链的路径依次传递给每一个节点对象,直至有对象原创 2020-10-16 11:35:20 · 1558 阅读 · 1 评论 -
策略模式详解附有代码案例分析(包含策略模式在源码中的应用以及代码示例)
策略模式一、策略模式的概念与角色(一)、策略模式的概念(二)、策略模式的角色二、策略模式的应用场景三、策略模式的通用写法四、策略模式的支付案例代码示例五、策略模式在源码中的应用六、策略模式的优缺点(一)、优点(二)、缺点一、策略模式的概念与角色(一)、策略模式的概念 策略模式又叫做政策模式,它是将 定义的算法家族、分别封装起来,让他们之间可以互相替换,从而让算法的变化不会影响到使用算法的用户。属于行为型模式。 策略模式使用的就是面向对象的继承和多态机制,从而实现统一行为在不同场景下具备不同实原创 2020-10-16 10:34:57 · 2997 阅读 · 0 评论 -
模板方法模式详解附有代码案例分析(包含模板方法模式重构JDBC操作业务代码示例)
模板方法模式一、模板方法模式的概念和角色(一)、模板方法模式的概念(二)、模板方法模式的角色二、模板方法模式的应用场景三、 模板方法模式的代码示例四、模板方法模式重构JDBC操作业务五、模板方法模式的优缺点(一)、优点(二)、缺点一、模板方法模式的概念和角色(一)、模板方法模式的概念 模板方法模式是指定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤,属于行为型设计模式。 模板方法模式实际上是封装了一个固定流程,该流程由几个步原创 2020-10-15 21:45:26 · 615 阅读 · 0 评论 -
委派模式详解附有代码案例分析(包含委派模式在JDK中的源码示例解析)
委派模式一、委派模式的概念和角色(一)、委派模式的概念(二)、委派模式的角色二、委派模式的代码示例三、委派模式在源码中的应用四、委派模式的优缺点(一)、优点(二)、缺点一、委派模式的概念和角色(一)、委派模式的概念 委派模式又叫委托模式,是一种面向对象的设计模式,允许对象组合实现与继承相同的代码宠用。它的基本作用就是负责任务的调用和分配任务,是一种特殊的静态代理,可以理解为全权代理,但是代理模式注重过程,而委派模式注重结果。委派模式属于行为型模式,不属于GOF23种设计模式中。(二)、委派模式的原创 2020-10-15 19:58:46 · 293 阅读 · 0 评论 -
适配器模式详解附有代码案例分析(包含类适配器、对象适配器以及接口适配器的代码示例)
适配器模式一、适配器模式的概念和角色(一)、适配器的概念(二)、适配器的角色二、适配器的应用模式三、类适配器的代码示例四、对象适配器的代码示例五、接口适配器的代码示例六、适配器和装饰器模式的对比七、适配器模式的优缺点(一)、优点(二)、缺点一、适配器模式的概念和角色(一)、适配器的概念 适配器又叫做变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起工作,属于结构型设计模式。 也就是说,当前系统存在两种接口A和B,客户只原创 2020-10-15 19:10:20 · 1716 阅读 · 0 评论 -
桥接模式详解附有代码案例分析
桥接模式一、桥接模式的概念和角色(一)、桥接模式的概念(二)、桥接模式的角色二、桥接模式的应用场景三、桥接模式的代码示例四、桥接模式的优缺点(一)、优点(二)、缺点一、桥接模式的概念和角色(一)、桥接模式的概念 桥接模式也称为桥梁模式。是将抽象部分与它的具体实现部分分离,使他们都可以独立地变化,属于结构型模式。 桥接模式主要目的是通过组合的方式建立两个类之间的联系,而不是继承。但又类似于多重继承方案,但是多重继承方案往往违背类的单一职责原则,其复用性比较差,桥接模式是比多重继承更好的替代方案原创 2020-10-15 19:09:01 · 791 阅读 · 0 评论 -
组合模式详解附有代码案例分析(包含透明组合模式、安全组合模式的代码示例)
组合模式一、组合模式的概念和角色(一)、组合模式的概念(二)、组合模式的角色二、组合模式的应用场景三、透明组合模式的代码示例四、安全组合模式的代码示例五、组合模式的优缺点(一)、优点(二)、缺点一、组合模式的概念和角色(一)、组合模式的概念 组合模式也称为整体-部分模式,它的宗旨是通过将单个对象(叶子节点)和组合对象(树枝节点)用相同的接口进行表示,使得客户对单个对象和组合对象的使用具有一致性,属于结构型模式。 组合模式一般用来描述整体和部分的关系,它将对象组织到树形结构中,最顶层的节点成为原创 2020-10-14 21:38:57 · 1431 阅读 · 2 评论 -
享元模式详解附有代码案例分析(包含享元模式的源码应用分析——String中的享元模式应用、Integer中的享元模式应用)
享元模式一、享元模式的概念以及角色(一)、享元模式的概念(二)、享元模式的角色二、享元模式的应用场景三、享元模式的代码示例四、享元模式在源码中的应用(一)、String中的享元模式(二)、Integer的享元模式五、享元模式的内部状态和外部状态六、享元模式的优缺点(一)、优点(二)、缺点一、享元模式的概念以及角色(一)、享元模式的概念 享元模式又称为轻量级模式,是对象池的一种实现。类似于线程池,线程池可以避免不停的创建和销毁多个对象,消耗性能。提供了减少对象数量从而改善应用的对象结构方式。其宗旨是原创 2020-10-14 20:12:18 · 831 阅读 · 0 评论 -
装饰者模式详解附有代码案例分析
装饰者模式一、装饰者模式的概念与角色(一)、装饰者模式的概念(二)、装饰者的角色二、装饰者模式的应用场景三、无使用装饰者模式的代码示例四、装饰者模式的代码示例五、装饰者模式的优缺点(一)、优点(二)、缺点六、装饰者模式与代理模式的对比一、装饰者模式的概念与角色(一)、装饰者模式的概念 装饰者模式,也称为包装模式是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。 装饰者模式的核心是功能扩展。使用装饰者模式可以透明且动态地扩原创 2020-10-11 11:37:00 · 871 阅读 · 0 评论 -
门面模式详解附有代码案例分析
门面模式一、门面模式的概念和角色(一)、门面模式的概念(二)、门面模式的角色二、门面模式的使用场景三、门面模式的通用写法四、门面模式的优缺点(一)、优点:(二)、缺点一、门面模式的概念和角色(一)、门面模式的概念 门面模式又叫外观模式,提供了一个统一的接口,用来访问子系统中的一群接口。其主要特征是定义了一个高层接口,让子系统更容易使用,属于结构式模式。 门面模式的本质就是化零为整,引入一个中介类,把各个纷繁的功能组合成一个整体,只对外暴露一个统一的接口。 目的:为了用户使用方便,把过度原创 2020-10-09 17:22:29 · 786 阅读 · 0 评论 -
建造者模式详解附有代码案例分析(包含建造者模式与工厂模式的区别分析)
建造者模式详解一、建造者模式的概念与角色(一)、建造者模式的概念(二)、建造者模式的角色二、建造者模式的应用场景三、建造者的基本写法四、建造者模式的链式写法五、建造者模式的优缺点(一)、优点(二)、缺点六、建造者模式和工厂模式的区别七、设计模式的相关博客文章链接1、链接: [七大设计原则的简单解释(包含合成复用原则),简单理解、快速入门,具备案例代码](https://blog.csdn.net/hyyyya/article/details/108339550).2、链接: [工厂模式详解附有代码案例分析(原创 2020-09-24 17:09:46 · 1005 阅读 · 0 评论 -
原型模式详解附有代码案例分析(浅克隆和深克隆的相关解析)
原型模式详解一、原型模式的概念与角色(一)、原型模式的概念(二)、原型模式的角色二、原型模式的应用场景三、原型模式的通用写法四、原型模式——使用Java语音提供的clone()方法(一)、Java语言提供的clone()方法(二)、通用写法的改进——代码示例五、浅克隆与深克隆(一)、浅克隆与深克隆的特点1、浅克隆的特点2、深克隆的特点(二)、浅克隆的代码示例(三)、深克隆的代码示例六、深克隆对单例模式的破坏(一)、饿汉式单例模式(二)、测试代码(三)、结果显示(四)、解决方法一、原型模式的概念与角色(一原创 2020-09-23 20:31:10 · 832 阅读 · 0 评论 -
单例模式详解及代码案例与应用场景(饿汉式单例模式、懒汉式单例模式、注册式单例模式)
单例模式详解一、单例模式的定义及应用场景二、饿汉式单例模式(一)、饿汉式单例模式的优缺点(二)、饿汉式单例模式的代码案例三、懒汉式单例模式(一)、懒汉式单例模式的特点(二)、懒汉式单例模式的代码案例一(三)、懒汉式单例模式代码案例一的缺点1、模拟线程安全问题结果显示(1)、线程安全出错(2)、线程安全无出错2、模拟线程安全问题测试代码(1)、线程类:ExcetorThread(2)、测试类:LazySimpleSingletonTest3、模拟线程安全问题原因分析(四)、懒汉式单例模式代码案例一的解决方法1原创 2020-09-12 19:53:42 · 7844 阅读 · 1 评论 -
工厂模式详解附有代码案例分析(简单工厂,工厂方法,抽象工厂)
设计模式之工厂模式详解附有代码案例分析(简单工厂,)工厂模式详解附有代码案例分析设计模式之工厂模式详解附有代码案例分析(简单工厂,)一、简单工厂模式(一)、简单工厂的概念(二)、无使用简单工厂模式的代码案例(三)、使用简单工厂模式的代码案例——字符串参数(四)、使用简单工厂模式的代码案例——类名(使用反射)(五)、使用简单工厂模式的代码案例——类(六)、类图二、工厂方法模式(一)、工厂方法的概念(二)、使用工厂方法模式的代码案例(三)、工厂方法模式的适用场景与缺点1、工厂方法模式的适用场景2、工厂方法模式原创 2020-09-09 21:18:52 · 2185 阅读 · 0 评论 -
七大设计原则的简单解释(包含合成复用原则),简单理解、快速入门,具备案例代码
七大软件设计原则七大软件设计原则一、Open-Closed Principle开闭原则1、开闭原则定义2、开闭原则优点3、案例代码(1)、书籍接口代码(2)、Java类书籍(3)、Java类折扣书籍(4)、增加JavaDiscountPrice类的前后区别二、Dependence Inversion Principle依赖倒置原则1、依赖倒置原则定义2、依赖倒置原则优点3、案例代码(1)、不满足依赖倒置原则的情况(2)、接口传递方式进行依赖注入(1)、书籍抽象接口类(2)、Java类书籍实现类(3)、Pyt原创 2020-09-01 14:35:53 · 939 阅读 · 0 评论