Java设计模式
文章平均质量分 84
java设计模式总结,提升代码架构能力
hxcaifly
这个作者很懒,什么都没留下…
展开
-
【Java设计模式】:行为型模式—责任链模式
文章目录1. 责任链模式定义2. 具体实例3. 责任链模式的好处1. 责任链模式定义责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。Tomcat中的Filter...转载 2019-03-20 10:10:40 · 155 阅读 · 0 评论 -
【Java设计模式】:行为型模式—命令模式
文章目录1. 命令模式(Command)的定义2. 命令模式(Command)的适用性3. 命令模式(Command)的参与者4. 命令模式(Command)的UML类图5. 具体的代码实现6. 总结1. 命令模式(Command)的定义将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录日志,以及支持可撤销的操作,将”发出请求的对象”和”接收与执行这些请求的对象”分...原创 2019-03-19 11:03:09 · 132 阅读 · 0 评论 -
【Java设计模式】行为型模式—解释器模式
文章目录1. 解释器模式的定义2. 解释模式的结构3. 示例代码1. 解释器模式的定义给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语句中的句子。2. 解释模式的结构下面就以一个示意性的系统为例,讨论解释器模式的结构。系统的结构图如下所示:抽象表达式角色(Expression):声明一个所有的具体表达式角色都需要实现的...转载 2019-03-17 21:45:13 · 170 阅读 · 0 评论 -
【Java设计模式】:行为型模式—迭代器模式
文章目录1. 迭代器模式定义2. 迭代器模式的角色构成3. 迭代器模式应用的场景及意义4. 迭代器模式的优缺点1. 迭代器模式定义迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。迭代器模式不复杂,也比较常见,我们平时用的Java集合类对象其实内部已经实现了迭代器模式,比如ArrayList。2. 迭代器模式的角色构成(1)迭代器角...转载 2019-03-15 09:32:52 · 129 阅读 · 0 评论 -
【Java设计模式】:行为型模式—中介者模式
文章目录1. 中介者模式(Mediator pattern)定义2. 中介者的作用3. 中介者模式的结构4. 代码演示5. 中介者模式的优缺点:1. 中介者模式(Mediator pattern)定义使用中介者模式来集中相关对象之间复杂的沟通和控制方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相...转载 2019-03-14 10:19:38 · 184 阅读 · 0 评论 -
【Java设计模式】:行为型模式—备忘录模式
1. 场景当我们使用文本编译器记录一些内容时,发现这一步写错了,往往可以使用Ctrl+Z的方式会退到上一个状态,其中运用到的知识就是备忘录模式。2. 定义备忘录模式,即保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。3. 模式结构发起者角色(Originator):负责创建一个备忘录用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。备忘录角色(Memen...转载 2019-03-02 16:08:45 · 155 阅读 · 0 评论 -
【Java设计模式】:行为型模式——状态模式
文章目录1. 状态模式的定义2. 初步实现代码3. 改进代码4. 状态模式适用场景5. 状态模式和策略模式比较1. 状态模式的定义状态模式,又称状态对象模式(Pattern of Objects for States),状态模式是对象的行为模式。状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。举个例子:海贼王中路飞在打多弗朗明哥的时候,首先是普通...转载 2019-02-01 09:54:15 · 197 阅读 · 0 评论 -
【Java设计模式】:行为型模式—策略模式
1.策略模式应用背景在软件开发中常常遇到这种情况,实现某一个功能有多种算法或者策略,我们可以根据应用场景的不同选择不同的算法或者策略来完成该功能。把一个类(A)中经常改变或者将来可能改变的部分提取出来,作为一个接口(B),然后在类(A)中包含这个接口(B),这样类(A)的实例在运行时就可以随意调用实现了这个接口的类©的行为。比如定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换,使得...原创 2019-01-19 21:50:56 · 195 阅读 · 0 评论 -
【Java设计模式】:行为型模式—模板模式
1.模板模式的定义定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。通俗的说的就是有很多相同的步骤的,在某一些地方可能有一些差别适合于这种模式,如大话设计模式中说到的考试场景中,每个人的试卷都是一样的,只有答案不一样。这种场景就适合于模板方法模式。我这次自己写的是一个汽车启动的过程,每一种汽车启动的过程都基本是一样的流...原创 2019-01-14 22:43:21 · 157 阅读 · 0 评论 -
【Java设计模式】:行为型模式—访问者模式
1. 访问者模式简介访问者模式,是行为型设计模式之一。访问者模式是一种将数据操作与数据结构分离的设计模式,它可以算是 23 中设计模式中最复杂的一个,但它的使用频率并不是很高,大多数情况下,你并不需要使用访问者模式,但是当你一旦需要使用它时,那你就是需要使用它了。访问者模式的基本想法是,软件系统中拥有一个由许多对象构成的、比较稳定的对象结构,这些对象的类都拥有一个 accept 方法用来接受访...原创 2019-01-10 11:09:39 · 184 阅读 · 0 评论 -
【Java设计模式】:结构型模式—享元模式
1. 享元模式的定义享元模式中的“享”就是分享之意,指一物被众人共享,而这也正是该模式的终旨所在。享元模式有点类似于单例模式,都是只生成一个对象来被共享使用。这里有个问题,那就是对共享对象的修改,为了避免出现这种情况,我们将这些对象的公共部分,或者说是不变化的部分抽取出来形成一个对象。这个对象就可以避免到修改的问题。享元的目的是为了减少不会要额内存消耗,将多个对同一对象的访问集中起来,不必为...原创 2019-01-09 10:53:28 · 178 阅读 · 0 评论 -
【Java设计模式】:结构型模式—装饰者模式
文章目录1. 结构型模式的定义2. 装饰者模式的角色3. 具体案例说明4. UML图表示5. 具体代码实现6. 装饰者模式适用场景1. 结构型模式的定义那生活中的例子来说明,对新房进行装修并没有改变房屋的本质,但它可以让房子变得更漂亮、更温馨、更实用。在软件设计中,对已有对象(新房)的功能进行扩展(装修),可以使对象的功能变得更见健全。把通用功能封装在装饰器中,用到的地方进行调用。装饰模式...原创 2019-01-07 22:35:46 · 196 阅读 · 0 评论 -
【Java设计模式】:结构型模式—组合模式
1. 组合模式的定义组合模式,就是在一个对象中包含其他对象,这些被包含的对象可能是终点对象(不再包含别的对象),也有可能是非终点对象(其内部还包含其他对象,或叫组对象),我们将对象称为节点,即一个根节点包含许多子节点,这些子节点有的不再包含子节点,而有的仍然包含子节点,以此类推。很明显,这是树形结构,终结点叫叶子节点,非终节点(组节点)叫树枝节点,第一个节点叫根节点。同时也类似于文件目录的结构形...原创 2019-01-05 22:44:32 · 194 阅读 · 0 评论 -
【Java设计模式】:结构型模式—桥接模式
1. 桥接模式的定义桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将两个独立变化的维度设计为两个独立的继承等级结构,并且在抽象层建立一个抽象关联,该关联关系类似一条连接两个独立继承结构的桥,故名桥接模式。桥接模式(Bridge Pattern):将...原创 2019-01-04 10:48:52 · 191 阅读 · 0 评论 -
【Java设计模式】: 结构型模式—适配器模式
1. 适配器模式的定义官方定义:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。官方定义还是显得不是那么好理解。其实就是要用到两个不相关的类/接口,但是又没有源代码,或者不想修改源代码,而增加一个类来完成合并使用的目的。适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见...原创 2019-01-03 09:42:20 · 168 阅读 · 0 评论 -
【Java设计模式】:创建型模式—建造者模式
1.建造者模式定义建造者模式,顾名思义的就是类似建房子,有一个固定的流程。在大话设计模式中,作者举了一个例子大概意思是同一道菜在中国的每一个地方都有不同的味道(LZ印象最深的是酸菜鱼,来杭州之后印象最深刻的是清蒸鲈鱼。),而肯德基的鸡腿、汉堡在每一个城市都是一样的味道。建造者模式实现了依赖倒转原则,抽象不应该依赖细节,细节应该依赖与抽象。建造者模式的定义是:将一个复杂对象的构造与它的表示分离,使...原创 2018-12-25 12:48:35 · 141 阅读 · 0 评论 -
【Java设计模式】:创建型模式—原型模式
1.原型模式(Prototype Pattern)定义:原型(Prototype)模式是一种对象创建型模式,他采取复制原型对象的方法来创建对象的实例。使用原型模式创建的实例,具有与原型一样的数据。原型模式的特点:由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。目标对象是原型对象的一个克隆。也就是说,通过原型模式创建的对象,不仅仅与原型对象具有相同的结构,还与原...原创 2018-12-26 14:47:49 · 177 阅读 · 0 评论 -
【Java设计模式】:结构型模式—代理模式
什么是代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。这里使用到编程中的一个思想: 不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明...原创 2018-12-18 13:58:28 · 581 阅读 · 0 评论 -
【Java设计模式】:行为型模式—观察者模式
引言当别人问你,一个类的对象属性发生改变时,如何让调用者知道?其实这个就是问你观察者模式的原理。观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监听者发现,这么想来目标发生情况到观察者知道情况,其实是由目标将情况发送到观察者的。1. 观察者模式 (Observer)观察者模式定义了一种一对多的依赖关系,让多...原创 2018-12-07 17:06:47 · 241 阅读 · 2 评论 -
【Java设计模式】:创建型模式—工厂模式
前言原创 2018-12-13 10:39:26 · 115 阅读 · 0 评论 -
【Java设计模式】:创建型模式—单例模式
1.单例模式(Singleton Pattern)的基本概念确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。单例模式有三个要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式是结构最简单的设计模式一,在它的核心结构中只包含一个被称为单例类的特...原创 2018-12-20 10:20:18 · 139 阅读 · 0 评论 -
【Java设计模式准备工作】:Java 类之间的关系
1.前言在Java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1. 依赖(Dependence)UML表示方式:依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:...原创 2018-09-17 21:57:20 · 163 阅读 · 0 评论 -
【Java设计模式开篇】:设计模式总览
1. 什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相...原创 2018-12-10 12:48:41 · 304 阅读 · 1 评论