
设计模式
快乐崇拜234
学习笔记
展开
-
java设计模式之访问者模式
定义访问者(Visitor)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。优缺点访问者(Visitor)模式是一种对象行为型模式,其主要优点如下。扩展性好。能够在不修改对象结构中的元素的情况下,为对象结构中的元素添加新的功能。复用性好。可以通过访问者来定义整个对象结构通用的功能,从而提高系统的复用程度。原创 2020-10-14 17:35:06 · 501 阅读 · 0 评论 -
java设计模式之状态模式
状态模式的定义与特点对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。模式的结构状态模式包含以下主要角色。环境(Context)角色:也称为上下文,它定义了客户感兴趣的接口,维护一个当前状态,并将与状态相关的操作委托给当前状态对象来处理。抽象状态(State)角色:定义一个接口,用以封装环境对象中的特定状态所对应的行为。具体状态(Concrete State)角色:实现抽象状态所对应的行为。典型类图为:demo以学生成绩为原创 2020-10-14 16:47:35 · 573 阅读 · 0 评论 -
模拟JDK动态代理 ; 自己动手模拟实现java动态代理
大家在看java设计模式之 代理模式这篇文章的时候, 可以发现动态代理无非就是以下四个步骤,我们完全可以自己模拟实现。因为java的class文件格式是公开的,只要最终生成的class格式正确并且可以加载到JVM中我们就可以正常使用啦。 1. 创建代理类的源码; 2. 对源码进行编译成字节码; 3. 将字节码加载到内存; 4. 实例化代理类对象并返回给调用者;使用聚合原创 2017-02-04 18:59:15 · 3698 阅读 · 0 评论 -
java设计模式之 代理模式
代理模式简介代理模式在JDK和java开源项目中都有非常广泛的应用。我们实际开发过程中也经常会用到代理模式。 代理模式的定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用 两个对象参与同一个请求,接收到的请求由代理对象委托给真实对象处理,代理对象控制请求的访问,它在客户端应用与真实目标之间起到一个中介桥梁的作用。代理模式包含如下角色:ISubject:抽象角色,是一个接口。该接原创 2017-02-03 17:09:05 · 1543 阅读 · 0 评论 -
java设计模式之 strategy策略模式
什么是策略模式Strategy模式也叫策略模式是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换 。上面定义可能比较抽象,下面来举个例子说明一下:根据某个规则对一系列对象进行排序假如现在有一群猫的对象,我们要按照其年龄进行排序。那么很简单原创 2017-02-06 17:33:36 · 1596 阅读 · 0 评论 -
java设计模式之单例模式
什么是单例模式单例模式,顾名思义,就是某个类在整个系统运行过程中,只有一个实例。与之对应的是多例模式。 单例模式实现的关键点是构造方法私有,其他类不可以直接调用构造方法创建实例对象,这样需要 单例类自身创建实例 并且输出到整个系统中。保证只有一个实例的工作交由单例类来处理。原创 2017-02-03 11:16:51 · 1129 阅读 · 0 评论 -
java设计模式之责任链模式
责任链模式简介在责任链模式中,多个对象依次处理同一个请求。对于请求者来说,他不知道到底会被几个对象处理。整个处理链条上的对象依次处理请求,直到全部处理完毕或者某一个对象由于某些原因(比如异常)阻止继续传递。 责任链模式高度解耦并且易扩展易修改,满足开闭原则和单一职责原则原创 2017-02-03 12:03:49 · 1788 阅读 · 0 评论 -
java设计模式之 观察者模式
文章目录观察者模式定义模拟实例观察者模式定义GOF给观察者模式如下定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。该模式包含四个角色抽象被观察者角色:也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现...原创 2019-01-30 15:55:57 · 1186 阅读 · 0 评论