随笔分类 - 设计模式
24中设计模式
摘要:1、Interpreter 解释器模式 解释器模式是一种使用频率相对较低但学习难度较大的设计模式,它用于描述如何使用面向对象语言构成一个简单的语言解释器。在某些情况下,为了更好地描述某一些特定类型的问题,我们可以创建一种新的语言,这种语言拥有自己的表达式和结构,即文法规则,这些问题的实例将对应为该语
阅读全文
摘要:1、command 命令模式 命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计 命名模式使得请求发送者与请求接收者消除彼此
阅读全文
摘要:池化的思想 1、Flyweight享元模式 运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。 面向对象很好地解决了“抽象”的问题
阅读全文
摘要:“人有悲欢离合,月有阴晴圆缺”,包括人在内,很多事物都具有多种状态,而且在不同状态下会具有不同的行为,这些状态在特定条件下还将发生相互转换。就像水,它可以凝固成冰,也可以受热蒸发后变成水蒸汽,水可以流动,冰可以雕刻,蒸汽可以扩散。 1、State 状态模式 状态模式将一个对象在不同状态下的不同行为封
阅读全文
摘要:例如:用于记录快照(顺势状态)、存盘 1、Memento Memento设计模式是一种软件设计模式,用于将对象回滚到其先前状态。它是行为设计模式的一部分,与算法和对象之间的职责分配有关。 行为模式描述了处理对象或类之间的通信的模式。在恢复对象状态时,Memento设计模式具有很大的适用性。需要用户退
阅读全文
摘要:以一个实例给大家引入观察者,大家多多少少都写过html或者java中的swing。我们定义一个按钮,给他增加一个点击事件,那么这个方法是怎么被触发到呢,对了,就是利用了观察者设计模式 观察者模式 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时
阅读全文
摘要:只有一个仲裁者 Mediator 模式 组员向仲裁者报告,仲裁者向组员下达指示,组员之间不在相互询问和相互指示。 要调整多个对象之间的关系时,就需要用到 Mediator 模式。将逻辑处理交给仲裁者执行。 示例程序 名字说明角色 Mediator 定义“仲裁者”的接口的接口 Mediator Col
阅读全文
摘要:什么是Facade模式 随着系统越来越复杂,我们需要把细节隐藏起来,给客户端提供一个统一的接口。在这种需求下facade模式诞生了。该模式比较简单,我们只需要在系统变得复杂把它运用上来,这样底层跟客户端就能够很大程度上解耦。 比如你基于平台做业务开发,那么一种很多的方式是,平台把所有底层逻辑封装进f
阅读全文
摘要:责任链模型初体现 通过上面的代码可以看到帖子处理器会对帖子进行不同的过滤, 我们可以把一种过滤方法对应为一个过滤器, 并且向上抽取出过滤器接口. public class Demo2 { public static void main(String[] args) { String msg = "大
阅读全文
摘要:1、模式的定义与特点 访问者(Visitor)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。 访问者(V
阅读全文
摘要:1、Decorator模式 装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包
阅读全文
摘要:1、Composite模式定义 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该
阅读全文
摘要:1、模式说明 策略模式比较好理解,就是将程序中用到的算法整体的拿出来,并有多个不同版本的算法实现,在程序运行阶段,动态的决定使用哪个算法来解决问题。 2、举例 排序算法的问题,假如我们的程序中需要对数据进行排序,我们知道,不同的算法具有不同的时间复杂度和空间复杂度,因此需要在程序运行时,根据可用内存
阅读全文
摘要:1、何为桥接模式 桥接模式是一种将类的功能层次和实现层次分离的技术,所谓类的功能层次指的是类要实现什么功能,要定义多少个函数还进行处理,在功能之中我们会用到继承来定义新的方法同时也能使用父类的方法,这样就构成了一个层次“父类-子类-孙类...”,这就是功能层次,与之对应的就是实现层次了,其实也很好理
阅读全文
摘要:1、什么是Builder模式 定义: 将一个复杂对象的构建与表示相分离,使得同样的构建过程可以创建不同的表示。大白话就是,你不需要知道这个类的内部是什么样的,只用把想使用的参数传进去就可以了,达到了解耦的目的。 使用场景: (1) 相同的方法,不同的执行顺序,产生不同的事件结果时。 (2) 多个部件
阅读全文
摘要:2020-07-19 发哥讲 发哥讲 其实上一节的末尾讲到如何去生成对象,其中有一个关于clone的,这其实就是Prototype原型模式. 通过克隆(拷贝)的方式生成对象 1、了解Prototype原型模式 引文: 在商品房销售系统中,房屋信息是基础信息。在系统运行前必须输入房屋的各种信息到系统中
阅读全文
摘要:1、了解Singleton模式 程序在运行时,通常都会生成很多实例。例如,表示字符串的java . lang . string类的实例与字符串是- -对- -的关系,所以当有1000个字符串的时候,会生成1000个实例。但是,当我们想在程序中表示某个东西只会存在-一个时,就会有“只能创建-一个实例”
阅读全文
摘要:趁热打铁,紧跟着上一节的工厂方法模式。这一节介绍一下抽象工厂模式,以及分析俩个模式的不同 1、何为抽象模式? 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方
阅读全文
摘要:工厂模式分类: 1、简单工厂模式 2、多方法静态工厂 3、工厂方法模式 4、抽象工厂模式 其中工厂方法和抽象工厂是GoF23种设计模式中的一种,而简单工厂和多方法静态工厂则不是其中一种设计模式,更加可以理解的是一种编码时候预定俗称的一种习惯(常用)。 先带大家伙入个门~ 从简单工厂和多方法静态工厂入
阅读全文
摘要:1、了解模板方法 1.1 模式定义 定义一个操作算法中的框架,而将这些步骤延迟加载到子类中。 它的本质就是固定算法框架。 1.2 解决何种问题 让父类控制子类方法的调用顺序 模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 1.3 模式好处 开发人员在开发时,只需要考虑方
阅读全文

浙公网安备 33010602011771号