
java设计模式
捉住那只猫
勿忘初心
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java设计模式之章职责链模式(二十二)
1.章职责链模式1.1 职责链模式基本介绍职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。这种类型的设计模式属于行为型模式...原创 2020-03-30 17:18:56 · 196 阅读 · 0 评论 -
java设计模式之策略模式(二十一)
1.策略模式1.1 策略模式基本介绍策略模式(Strategy Pattern)中,定义 算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让 算法的变化独立于 使用算法的客户这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类(定义了策略接口);第三、多用组合/聚合,少用继承(客户通过组合方式使用策略)。1.2 策略模式的原...原创 2020-03-30 11:49:24 · 189 阅读 · 0 评论 -
java设计模式之状态模式(二十)
1.状态模式1.1 状态模式基本介绍状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换当一个 对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类1.2 状态模式的原理类图对原理 类 图的说明- - 即( ( 状态模 式的角色及职 责)Context 类为环境角...原创 2020-03-30 11:26:08 · 138 阅读 · 0 评论 -
java设计模式之解释器模式(十九)
1. 解释器模式1.1 解释器模式基本介绍在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器解释器模式(Interpreter Pattern): 是指给定一个语言( 表达式), 定义它的文法的一种表示,并 定义一个解释器,使用该 解释器来解释语言中的句子(表达...原创 2020-03-30 10:50:59 · 203 阅读 · 0 评论 -
java设计模式之备忘录模式(十八)
1. 备忘录模式1.1 游戏角色状态恢复问题游戏角色有攻击力和防御力,在大战 Boss 前保存自身的状态(攻击力和防御力),当大战 Boss 后攻击力和防御力下降,从备忘录对象恢复到大战前的状态1.1.1 传统方案解决游戏角色恢复1.1.2传统的方式的问题分析一个对象,就对应一个保存对象状态的对象, 这样当我们游戏的对象很多时,不利于管理,开销也很大.传统的方式是简单地做备份,ne...原创 2020-03-27 16:11:48 · 136 阅读 · 0 评论 -
java设计模式之中介者模式(十七)
1.中介者模式1.1 中介者模式基本介绍中介者模式(Mediator Pattern),用一个 中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其 耦合松散,而且可以独立地改变它们之间的交互中介者模式属于行为型模式,使代码易于维护比如 MVC 模式,C(Controller 控制器)是 M(Model 模型)和 V(View 视图)的中介者,在前后端交互时起到...原创 2020-03-27 15:53:21 · 122 阅读 · 0 评论 -
java设计模式之观察者模式(十六)
1 .观察者模式1.1 先看一个天气预报项目需求气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。需要设计开放型API,便于其他第三方也能接入气象站获取数据。提供温度、气压和湿度的接口测量数据更新时,要能实时的通知给第三方1.1.1 天气预报设计方案 1-普通方案传统的设计方案通过对气象站项目的分析,我们可以初步设计出一个We...原创 2020-03-26 11:35:55 · 143 阅读 · 0 评论 -
java设计模式之迭代器模式(十五)
1.迭代器模式1.1 迭代器模式基本介绍迭代器模式(Iterator Pattern)是 常用的设计模式,属于行为型模式如果我们的集合元素是用不同的方式实现的,有数组,还有 java 的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。迭代器模式, 提供一种遍历集合元素的统一接口,用 一致的方法遍历集合...原创 2020-03-25 10:31:59 · 146 阅读 · 0 评论 -
java设计模式之章访问者模式(十四)
1.访问者模式1.1 访问者模式基本介绍访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。主要将数据结构与数据操作分离,解决 数据结构和操作耦合性问题访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操...原创 2020-03-23 17:31:25 · 153 阅读 · 0 评论 -
java设计模式之命令模式(十三)
1. 命令模式1.1 命令模式基本介绍命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计命名模式使得 请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命名模式中,会将一个请求封装...原创 2020-03-23 11:45:09 · 109 阅读 · 0 评论 -
java设计模式之模板方法模式(十二)
1.模板方法模式1.1 模板方法模式基本介绍模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),z 在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义...原创 2020-03-20 13:45:25 · 130 阅读 · 0 评论 -
java设计模式之代理模式(十一)
1.1 代理模式(Proxy)1.1.1 代理模式的基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代理模式有不同的形式, 主要有三种 静态代理、 动态代理 (JDK 代理、接口代理)和 Cg...原创 2020-03-20 11:01:50 · 125 阅读 · 0 评论 -
java设计模式之享元模式(十)
1. 享元模式1.1 享元模式基本介绍享元模式(Flyweight Pattern) 也叫 蝇量模式: 运用共享技术有效地支持大量细粒度的对象常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。...原创 2020-03-19 11:14:21 · 184 阅读 · 1 评论 -
java设计模式之外观模式(九)
1.外观模式1.1 外观模式基本介绍外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口 提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用外观模式通过定义一个一致的接口,用 以屏蔽内部子系统的细节,使得 调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节1.1.1 外观模式原理类图对类图说明(分类外观模式的角色)外观...原创 2020-03-18 16:54:14 · 156 阅读 · 0 评论 -
java设计模式之组合模式(八)
1.组合模式1.1组合模式基本介绍组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“ 整体- 部分”的层次关系。组合模式 依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式。组合模式使得 用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象...原创 2020-03-18 15:51:03 · 199 阅读 · 0 评论 -
java设计模式之装饰者设计模式(七)
1.装饰者设计模式1.1 装饰者模式定义装饰者模式: 动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性, 装饰者模式也体现了开闭原则(ocp)这里提到的动态的将新功能附加到对象和 ocp 原则,在后面的应用实例上会以代码的形式体现,请同学们注意体会。1.2 装饰者模式原理装饰者模式就像打包一个快递主体:比如:陶瓷、衣服 (Component) // 被装饰者包...原创 2020-03-18 11:04:17 · 144 阅读 · 0 评论 -
java设计模式之桥接模式(六)
1.桥接模式1.1 桥接模式(Bridge)-基本介绍桥接模式(Bridge 模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种结构型设计模式Bridge 模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性...原创 2020-03-16 11:23:26 · 110 阅读 · 0 评论 -
java设计模式之适配器设计模式(五)
1.适配器设计模式1.1看一组实际生活中的例子1.2基本介绍适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示, 主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类: 类适配器模式、对象适配器模式、接口适配器模式1.3 工作原理适配器模式:将一个类的...原创 2020-03-13 13:53:54 · 190 阅读 · 0 评论 -
java设计模式之建造者模式(四)
1.建造者模式1.1 建造者模式基本介绍建造者模式(Builder Pattern) 又叫 生成器模式,是一种对象 构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。1.2 建造者模式的...原创 2020-03-12 15:38:50 · 118 阅读 · 0 评论 -
java设计模式之原型模式(三)
1.原型模式1.1 克隆羊问题现在有一只羊 tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和 tom 羊 属性完全相同的 10只羊。1.2传统方式解决克隆羊问题思路分析(图解)代码演示public class Sheep { private String name; private int age; private String color; pub...原创 2020-03-11 16:01:11 · 158 阅读 · 0 评论 -
java设计模式之工厂模式(二)
1.1简单工厂模式1.1.1先看一个具体需求看一个披萨的项目:要便于披萨种类的扩展,要便于维护披萨的种类很多(比如 GreekPizz、CheesePizz 等)披萨的制作有 prepare,bake, cut, box完成披萨店订购功能。1.1.2使用传统的方式来完成思路分析(类图)编写 OrderPizza.java 去订购需要的各种 Pizzapublic...原创 2020-03-10 15:18:58 · 126 阅读 · 0 评论 -
java设计模式之单例模式(一)
1.单例模式介绍 所谓类的单例设计模式,就是 采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如 Hibernate 的 SessionFactory,它充当数据存储源的代理,并负责创建 Session 对象。SessionFactory 并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactor...原创 2020-03-05 16:00:13 · 171 阅读 · 0 评论