Java设计模式
文章平均质量分 62
龙纹牛头
这个作者很懒,什么都没留下…
展开
-
java设计模式——行为型模式——解释器模式
行为型模式——解释器模式解释器模式概述给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。解释器模式结构在解释器模式中有以下角色:抽象表达式:定义解释器的接口,约定解释器的解释操作,主要包含解释方法interpret();终结符表达式:是抽象表达式的子类,用来实现文法中与终结符相关的操作,文法中的每一个终结符都有一个具体终结表达式与之相对应。非终结符表达式:也是抽象表达式的子类,用来实现文法中与非终结符相关的操作,文法中的每条规则都对应一个非终结符表达式原创 2021-05-29 16:43:34 · 108 阅读 · 0 评论 -
java设计模式——行为型模式——备忘录模式
行为型模式——备忘录模式备忘录模式概述:备忘录模式又叫快照模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,可以在以后当需要时能将该对象回复到原先保存的状态。备忘录模式结构:备忘录模式有以下角色:发起人角色:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录哦数据的功能,实现其他业务功能,他可以访问备忘录里的所有信息。备忘录角色:负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人。管理者角色:对备忘录进行管理,提供保存与获取备忘录的功能,但其不原创 2021-05-29 16:18:27 · 152 阅读 · 0 评论 -
java设计模式——行为型模式——访问者模式
行为型模式——访问者模式访问者模式概述访问者模式封装一些作用于某种数据结构中的各元素的操作,他可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。访问者模式结构访问者模式包含以下角色:抽象访问者角色:定义了每一个原色访问的行为,它的参数就是可以访问的元素,他的方法个数理论上与元素类的个数是一样的,从这点不难看出,访问者模式要求元素类的个数不能改变。(因为如果元素个数发生变化,则需要改变所有的访问者类)。具体访问者角色:给出对每一个元素类访问时所产生的具体行为。抽象元素角色:定义一个原创 2021-05-29 13:42:43 · 55 阅读 · 0 评论 -
java设计模式——行为型模式——迭代器模式
行为型模式——迭代器模式迭代器模式概述提供了一个对象迭代器模式结构迭代器模式实现迭代器模式优缺点原创 2021-05-29 09:46:43 · 126 阅读 · 0 评论 -
java设计模式——行为型模式——中介模式
行为型模式——中介模式中介模式概述中介模式又称调停模式,定义一个中介角色来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变他们之间的交互(形成星型结构)。中介模式结构中介模式有以下角色:抽象中介者对象:他是中介者的接口,提供了同时对象注册与转发同时对象信息的抽象方法。具体中介者对象:实现中介者接口,定义一个List来管理同时对象,协调各个同时角色之间的交互关系,因此它依赖于同时角色。抽象同事类对象:定义同事类的接口,保存中介者对象,提供同时对象交互的抽象方法,实现所有相互原创 2021-05-28 20:47:40 · 83 阅读 · 0 评论 -
java设计模式——行为型模式——观察者模式
行为型模式——观察者模式观察者模式概述观察者模式又称发布-订阅模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。观察者模式结构观察者模式有以下角色:抽象被观察者:抽象被观察者把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象。具体被观察者:该角色将有关状态存入具体观察者对象,在具体主题的内部状态发生变化时,给所有注册过的观察者发送通原创 2021-05-28 20:05:24 · 82 阅读 · 0 评论 -
java设计模式——行为型模式——状态模式
行为型模式——状态模式状态模式概述:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。状态模式结构:状态模式有以下角色:**环境角色:**也可以叫做上下文,它定义了客户程序需要的接口,维护一个当前状态,并将与状态相关的操作委托给当前状态对象来处理。**抽象状态角色:**定义一个接口,用以封装环境对象中的特定状态所对应的行为。**具体状态角色:**实现抽象状态所对应的行为。状态模式实现:下面用状态模式实现一个电梯工作的例子。/**原创 2021-05-28 18:49:55 · 138 阅读 · 0 评论 -
java设计模式——行为型模式——责任链模式
行为型模式——责任链模式责任链模式概述责任链模式,是为了避免请求发送者和多个请求处理这耦合在一起的情况。将所有请求的处理者形成一个链。当有请求发生时,可将请求沿着这条链传递,直到有对象处理请求为止。责任链模式结构责任链模式有以下角色:抽象处理者角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接。具体处理者角色:实现抽象处理者的处理方法,判断能否处理本次请求,如果不能处理,则将请求转给他的后继者。客户类角色:创建处理链,并向链头的处理者对象提价请求,他不关心处理细节和请求的传递过程。原创 2021-05-28 17:49:35 · 74 阅读 · 0 评论 -
java设计模式——行为型模式——命令模式
行为型模式——命令模式命令模式概述将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分隔开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用与管理。命令模式结构命令模式包括以下角色:**抽象命令类角色:**定义命令的接口,声明执行的方法。**具体命令角色:**具体的命令,实现命令接口;通常会持有接受者,并调用接受者的功能来完成命令要执行的操作。**实现者/接受者角色:**接收者,真正执行命令的对象。任何类都可能成为一个接受者,只要它能实现命令要求实现的功能。原创 2021-05-28 16:28:39 · 102 阅读 · 0 评论 -
java设计模式——行为型模式——策略模式
行为型模式——策略模式策略模式概述策略模式定义了一系列算法,并将每个算法封装起来,是它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式食欲对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。策略模式结构在策略模式中有以下角色:抽象策略类:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。具体策略类:实现了抽象策略定义的接口,提供具体的算法实现或行为。环境类:持有一个策略类的引用,最终给客原创 2021-05-28 12:45:02 · 119 阅读 · 1 评论 -
java设计模式——行为型模式——模版方法模式
行为型模式——模版方法模式模版方法模式概述定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中实现,使得子类可以不改变该算法结构的情况下定义该算法的某些特定步骤。模版方法结构在模版方法模式中包括一下角色:抽象类:负责给出一个算法的轮廓和骨架。它由一个模版方法和若干个基本方法构成。模版方法就是算法的骨架,按照某种顺序调用其包含的基本方法。基本方法是实现各个步骤的方法,是模版方法的组成部分,同时基本方法又可以分为三种,分别是抽象方法、具体方法、钩子方法。抽象方法由抽象类声明,由具体子类实现。具体原创 2021-05-28 12:27:32 · 58 阅读 · 0 评论 -
java设计模式——结构型模式——享元模式
结构型模式——享元模式享元模式概述运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量,避免大量相似对象的开销,从而提高系统资源的利用率。享元模式结构享元模式中存在以下两种状态:内部状态:即不会随着环境的改变而改变的可共享部分。外部状态:指随外部改变而改变的不可以共享的部分。享元模式的实现要领就是区分应用中的两种状态,并将外部状态外部化。享元模式中有以下角色:抽象享元角色:通常是一个接口或者一个抽象类,在抽象享元类中声明具体享元类公共方法原创 2021-05-28 09:07:02 · 94 阅读 · 0 评论 -
java设计模式——结构型模式——组合模式
结构型模式——组合模式组合模式概述组合模式用于把一组相似的对象当作一个单一的对象,组合模式依据树形结构来组合对象,用来表示部分以及整体层次。它创建了树形结构。组合模式结构组合模式有一下组成角色:抽象根节点;定义刺痛各层次对象的共有方法和属性,可以预先定义一些默认行为和属性。树枝节点:定义树枝节点的行为,存储子节点,组合树枝节点和叶节点形成一个树形结构。叶子结点:叶子结点对象,其下再无分枝,是系统层次遍历的最小单位。组合模式实现组合模式分类组合模式优点...原创 2021-05-28 08:33:58 · 166 阅读 · 0 评论 -
java设计模式——结构型模式——外观模式
结构型模式——外观模式外观模式概述:外观模式,又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一的接口,外部应用程序不关心内部子系统的具体实现细节,这样会大大降低应用程序的复杂度,提高了程序的可用性。外观模式结构:外观模式包含一下角色:外观角色:为多个子系统对外提供一个共同的接口。子系统角色:实现系统的部分功能,客户可以通过外观角色访问它。外观模式实现:/** * SmartApplication是外部角色 */p原创 2021-05-27 16:14:30 · 72 阅读 · 0 评论 -
java设计模式——结构型模式——桥接模式
结构型模式——桥接模式桥接模式概述桥接模式是将抽象与实现分离,是他们可以独立变化,他是用组合关系代理继承关系来实现,从而降低了抽象和实现这两个可变维度之间的耦合度。举个例子的话,在不使用桥接模式时,如果定义两个类“圆”和“红色的圆”,那么这两个类的关系是“红色的圆”继承自“圆”,但是如果使用桥接模式,则变成“圆”和“红的”两个类,将其组合成红色的圆。桥接模式机构在桥接模式中包括一下角色:抽象话角色:定义抽象类,并包含一个对实现化对象的引用。扩展抽象话角色: 是抽象化角色的子类,实现父类中的业务原创 2021-05-27 15:54:11 · 91 阅读 · 0 评论 -
java设计模式——结构型模式——装饰者模式
结构型模式——装饰者模式装饰者模式概述指在不改变现有对象结构的情况下,动态地给改对象增加一些职责的结构性模式。装饰者模式结构装饰者模式包括:抽象构件角色:定义一个抽象接口以规范准备接收附加责任的对象。具体构件角色:实现抽象构件,通过装饰角色为其添加一些职责。抽象装饰角色:继承或实现抽象构件,并包含具体构件的实例,可以通过其子类口站具体装饰角色装饰者模式实现装饰者模式中各个角色的关系是这样的:“抽象构件角色”是整个装饰者模式中基础,这个“抽象构件角色”被很多“具体构件角色”继承。装饰类原创 2021-05-26 20:07:18 · 114 阅读 · 0 评论 -
java设计模式——结构型模式——适配器模式
结构型模式——代理模式适配器模式概述:将一个类的接口转换成业务层代码需要的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式结构:适配器模式包括以下主要角色:目标接口:当前系统业务所期望的接口,他可以是抽象类或者接口。适配者类:他是被访问和适配的现存的组件库中的组件接口。适配器类:他是一个转换器,通过继承或者引用是陪着的对象,把适配者接口转换成目标接口,让客户按照目标接口的格式访问适配者。适配器模式的实现适配器模式分为类适配器模式和对象适配器模式。前者类与类之间原创 2021-05-26 16:41:29 · 110 阅读 · 0 评论 -
java设计模式——结构型模式——代理模式
结构型模式——代理模式代理模式概述在代理模式中,业务层代码不会直接饮用目标对象,而是会提供一个代理对象作为业务层代码和目标对象之间的中介。在java中,代理类按照生成的时间不同分为静态代理和动态代理。静态代理是指代理类在编译期就生成,而动态代理是指在java程序运行时动态生成。动态代理又分为jdk动态代理和cglib动态代理。代理模式的结构在代理模式中主要包括以下角色:抽象主题类:通过接口和抽象类声明真实主题和代理对象是想的业务方法。真实主题类:实现了抽象主题类中的具体业务,是代理对象所代表原创 2021-05-26 14:38:41 · 90 阅读 · 0 评论 -
java设计模式——创建者模式——建造者模式
创建者模式——建造者模式建造者模式概述:在建造者模式中,一个复杂的对象被分解成若干的部件。部件由具体建造者类(builder)负责构造,有指挥类(director)负责装配。进而构造出复杂的对象。由于在建造者模式中,实现了构造和装配的解耦,则使用不同的构造器,相同的装配有可能会做出不同的对象,同样的使用相同的构建起,不同的装配也可以做出不同的对象。建造者模式的结构:建造者模式主要由以下角色:抽象建造者类:这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的部件对象的创建。具体建造者类:原创 2021-05-26 11:02:27 · 116 阅读 · 0 评论 -
java设计模式——创建者模式——原型模式
创建者模式——原型模式原型模式概述:原型模式的用意是创建一个实例作为“原型”,通过复刻这个“原型对象”的方式来创建一个和原型对象相同的对象。原型模式结构:原型模式包括如下角色:抽象原型类:规定了具体原型对象必须实现的clone方法。具体原型类:实现了抽象原型类的clone方法,通过实例化具体原型类建立“原型”访问类:使用具体原型类中的clone方法复制新的对象原型模式的实现:原型模式的实现分为“浅克隆”和“深克隆”,浅克隆是指,创建一个新的对象,这个对象的基本数据类型属性与“原型”一原创 2021-05-26 09:58:44 · 77 阅读 · 0 评论 -
java设计模式——创建者模式——工厂模式
创建者模式——工厂模式工厂模式概述:在java中,万物皆对象,这些对象都需要被创建。如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则。如果我们使用工厂模式来生产对象,我们则可以只和工厂打交道,彻底和对象解耦,如果要更换对象,直接在工厂里更换对象即可,达到了与对象解耦的目的。工厂模式分类:简单工厂模式(一种编程习惯,不属于23中设计模式)工厂方法模式抽象工厂模式一、简单工厂模式1.简单工厂模式结构:原创 2021-05-25 21:07:41 · 213 阅读 · 0 评论 -
java设计模式——创建者模式——单例设计模式
创建者模式——单例设计模式单例模式概述:单例模式是java中最简单的设计模式之一,这种类型的数据模式属于创建型模式,它提供了一种创建对象的最佳方法。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一对象的方式,可以直接访问,不需要实力化该类的对象。单例模式的结构单例模式主要有以下角色:单例类:只能创建一个实例的类。访问类:用来使用单例类。单例模式的实现从总体上看,单例模式的实现方式可以分为饿汉式和懒汉式。饿汉式是指在类加载过程中就会原创 2021-05-24 20:35:50 · 179 阅读 · 1 评论