随笔分类 -  java设计模式

摘要:责任链模式又称职责链模式,属于行为型模式;在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不指导链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。 责 阅读全文
posted @ 2022-04-10 23:08 pluto_charon 阅读(558) 评论(0) 推荐(1) 编辑
摘要:策略模式属于行为型模式,是使用最多的设计模式之一;其作用是针对一组算法,将每一个算法封装到具体共同接口的独立的类种,从而使得他们可以相互转化。策略模式使得算法可以在不影响到客户端得情况下发生变化。 在开发过程中,经常会遇到某种业务存在多种策略可供选择的情况,比如超市促销打折,旅游出行方案等。对于这一 阅读全文
posted @ 2022-04-10 12:44 pluto_charon 阅读(539) 评论(0) 推荐(1) 编辑
摘要:状态模式又称状态对象模式,属于行为型模式;状态模式允许一个对象在其内部状态改变的时候改变其行为,这个对象看上去就像是改变了它的类一样。状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的子类,状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。 对 阅读全文
posted @ 2022-04-09 22:21 pluto_charon 阅读(169) 评论(0) 推荐(0) 编辑
摘要:解释器模式属于行为型模式;指给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。 解释器模式的UML类图如下所示: 由上图可知,解释器模式涉及到抽象表达式(A 阅读全文
posted @ 2022-04-07 19:05 pluto_charon 阅读(212) 评论(0) 推荐(0) 编辑
摘要:备忘录模式又叫做快照模式,属于行为型模式。是指使用一个备忘录对象来存储另一个对象内部状态的快照。备忘录模式的用以是在不破坏封装的条件下,将一个对象的状态捕捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。 开发者对这个模式应该很熟悉,我们使用的开发软件都会有这样的备忘 阅读全文
posted @ 2022-04-05 23:19 pluto_charon 阅读(248) 评论(0) 推荐(0) 编辑
摘要:中介者模式又称调停者模式,属于行为型模式;中介者模式包装了一系列对象相互作用的方式,使得这些对象不必互相明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。 在中介者模式中,所有的成 阅读全文
posted @ 2022-04-04 21:28 pluto_charon 阅读(556) 评论(0) 推荐(0) 编辑
摘要:观察者模式又叫做发布-订阅模式,属于行为型模式;观察者模式通过定义一种一对多得依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 观察者模式的UML类图如下: 如上图所示,观察者模式主要涉及到抽象主题角色、具体主题角色、抽 阅读全文
posted @ 2022-03-30 23:54 pluto_charon 阅读(1365) 评论(0) 推荐(0) 编辑
摘要:访问者模式属于行为型模式;指将作用于某种数据结构中各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。 访问者模式的目的是封装一些施加于某种数据结 阅读全文
posted @ 2022-03-27 21:02 pluto_charon 阅读(422) 评论(0) 推荐(0) 编辑
摘要:迭代器模式又称游标模式,属于行为型模式;指提供一些方法来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表象。迭代器模式是通过将聚合对象的遍历行为分离出来,抽象成迭代器类来实现的,其目的是在不暴露聚合对象的内部结构的情况下,让外部代码透明地访问聚合的内部数据。 迭代器模式是最常见的几个设计模式 阅读全文
posted @ 2022-03-27 15:47 pluto_charon 阅读(459) 评论(0) 推荐(0) 编辑
摘要:命令模式又称为行动/交易模式,属于行为型模式;是指将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。 命令模 阅读全文
posted @ 2022-03-26 23:06 pluto_charon 阅读(454) 评论(0) 推荐(0) 编辑
摘要:模板方法模式属于行为型模式,定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤,不同的子类可以以不同的方式实现这些抽象方法。从而对剩余逻辑有不同的实现。模版方法模式是基于继承的代码复用的基本技术,模版方法模式的结构和用法也是面向对 阅读全文
posted @ 2022-03-26 15:50 pluto_charon 阅读(565) 评论(0) 推荐(0) 编辑
摘要:代理模式属于结构型模式,代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用,即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。如Spring中的AOP。 代理模式有三种形式:静态代理,JDK动态代理和Cglib动态代理 阅读全文
posted @ 2022-03-25 23:42 pluto_charon 阅读(116) 评论(0) 推荐(0) 编辑
摘要:享元模式又称蝇量模式或者羽量模式,属于结构型模式;是指以共享的方式高效的支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。 享元对象能做到共享的关键是区分内蕴状态( Internal State)和外蕴状态(Extern 阅读全文
posted @ 2022-03-23 22:48 pluto_charon 阅读(229) 评论(0) 推荐(1) 编辑
摘要:外观模式又叫门面模式,属于结构型模式;是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 现在微服务和模块化越来越流行,我们都会把一个复杂的系统 阅读全文
posted @ 2022-03-22 23:15 pluto_charon 阅读(225) 评论(0) 推荐(0) 编辑
摘要:组合模式又叫合成(部分-整体)模式,属于结构型模式。组合模式将对象组织到树结构中,可以用来描述整体与部分的关系,可以使客户端将单纯元素与复合元素同等看待。 树结构在过程性的编程语言中曾经发挥了巨大的作用,在面向对象的语言中,树结构也同样威力巨大。一个基于继承的类型的等级结构便是一个树结构;一个基于组 阅读全文
posted @ 2022-03-21 21:20 pluto_charon 阅读(348) 评论(0) 推荐(0) 编辑
摘要:装饰器模式又叫包装模式,数据结构型模式;是指在不改变现有对象结构的情况下,动态的给改对象增加一些职责(即增加其额外功能)的模式。 在星巴克咖啡店,有美式咖啡(LongBlack)、无因咖啡(Decaf)、意大利农咖啡(Espresso)等不同的咖啡种类,也可以添加牛奶(Milk)、豆浆(Soy)、巧 阅读全文
posted @ 2022-03-20 15:42 pluto_charon 阅读(3397) 评论(0) 推荐(1) 编辑
摘要:桥接模式又称桥梁模式,属于结构型模式,是指将抽象化 与 实现化 脱耦,使得二者可以独立的变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。 抽象化 存在于多个实体中的共同的概念性联系,就是抽象化,作为一个过程,抽象化就是忽略一些信息,从而把不同的实体当作同样的实体对 阅读全文
posted @ 2022-03-18 23:24 pluto_charon 阅读(1762) 评论(1) 推荐(0) 编辑
摘要:适配器模式也叫包装器,属于结构型模式;就是把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起共组的两个类能够在一起工作,适配器模式的主要目的就是兼容性。适配器模式主要分为两类:类适配器模式,对象适配器模式。 都知道中国的生活用电电压是220V,而我们的智能手机充电器的输 阅读全文
posted @ 2022-03-16 21:48 pluto_charon 阅读(283) 评论(0) 推荐(1) 编辑
摘要:在有些情况下,一个对象会有一些重要的性质,在他们没有被赋值之前,对象不能作为一个完整的产品使用。比如,一个电子邮件有发件人地址、收件人地址、主题、内容、附件等,最起码在收件人地址没有赋值之前,这个电子邮件是不能发出的。 在有些情况下,一个对象的一些性质必须按照某个顺序赋值才有意义,在某个性质没有赋值 阅读全文
posted @ 2022-03-13 23:12 pluto_charon 阅读(114) 评论(0) 推荐(0) 编辑
摘要:介绍: 原型模式(原始模式)是指:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建更过的同类型对象,即对象.clone()。 传统方式: 我们都知道克隆羊多莉的故事。本模式中使用多莉来做讲解。 每一只羊都有一下几个共同属性:姓名(name)、年龄(age)、颜色(co 阅读全文
posted @ 2022-03-12 21:26 pluto_charon 阅读(93) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示