![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
Betty84
come on ~~~
展开
-
代理模式
代理模式:代理模式是对象的结构模式,代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用 代理模式中角色: 抽象对象角色:声明目标对象和代理对象的共同接口,如此在任何可使用目标对象的地方均能使用代理对象 目标对象角色:定义了代理对象所代表的目标对象 代理对象角色:代理对象内部含有目标对象的引用,从而可以在任何时候操作目标对象,代理对象提供一个与目标对象相同的接口,以便在任何转载 2016-07-29 15:01:30 · 555 阅读 · 0 评论 -
命令模式
1、概念: 将来自客户端的请求传入一个对象,从而可用不同的请求对客户进行参数化,用于“行为请求者”和“行为实现者”进行解耦,实现二者之间的松耦合,以便适应变化, 分离变化与不变的因素。 在面向对象程序设计中,一个对象调用另一个对象,一般的调用过程是:创建目标对象实例,设置调用参数;调用目标对象的方法。有时需专门设置一个类对调用过程进行封装,此类成为转载 2016-08-12 15:17:00 · 260 阅读 · 0 评论 -
装饰器模式
装饰器模式:动态地为对象添加一些额外的功能。 特点: 1、装饰者和被装饰者拥有相同的超类型,可以是接口可以是抽象类。 2、装饰类中包含一个被装饰类组件的引用 3、可以为被装饰对象添加额外的功能 4、在装饰类中重写被装饰组件类中的方法,并对被装饰组件类中对应的方法调用。 结构图: 1、Component是装饰器模式中公共方法的类,在装饰器模式的顶层。 2、ConcreateC转载 2016-08-12 10:29:07 · 402 阅读 · 0 评论 -
享元模式
享元模式: 意图:运用共享技术有效的支持大量细粒度的对象。 享元模式可使共享的访问那些大量出现的细粒度对象,享元对象必须是不可变的,可将那些不变得部分提取出来 享元模式的重点: 分离变与不变,本质是分离与共享。把一个对象的状态分为内部状态和外部状态。内部状态是不变的,外部状态是可变的,通过共享不变的部分,达到减少对象数量并节约内存的目的。 内部状态:通常指的是包含在享元对象内部的、对象本转载 2016-08-11 15:52:20 · 397 阅读 · 0 评论 -
组合模式
组合模式:又称部分-整体模式,使树型结构的问题中,模糊了简单元素和复杂元素的概念。客户程序可以像处理简单元素一样处理复杂元素。从而使得客户程序与复杂元素的内部结构解耦,组合模式可优化处理递归或分级数据结构,分级数据结构的一个普遍例子:文件系统。文件系统由目录和文件组成,每个目录都可装内容,目录的内容可以是文件,也可以是目录。 涉及的角色: 1、Component 是组合中的对象声明接口,在适当转载 2016-08-10 15:06:04 · 223 阅读 · 0 评论 -
适配器模式
适配器模式:把一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的类能够在一起工作。 适配器模式分类:类适配器;对象适配器 类适配器: 涉及到的角色:1、目标角色:所起到得到的接口,目标为接口 2、源角色:需要适配的接口 3、适配器角色:适配器类把转载 2016-08-09 11:23:11 · 248 阅读 · 0 评论 -
策略模式
策略模式属于对象的行为模式,其用意是针对一组算法,将每一个算法封装到具有共同接口的类中,从而使得它们可以相互替换,策略模式使得算法在不影响客户端的情况下发生变化。 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,策略模式通常把一个系列的算法包装到一系列的策略类中,作为一个抽象策略类的子类,一句话形容,准备一组算法,并将每一组算法转载 2016-08-17 10:36:02 · 573 阅读 · 0 评论 -
简单工厂模式
简单工厂模式:就是定义一个工厂类,对实现了同一接口的类进行实例的创建。 适用场景: 工厂类负责创建的对象非常少 客户只知道传入工厂类的参数,对如何创建对象不关心 由于简单工厂很容易违背高内聚责任分配原则,因此一般只在简单的情况下使用 优点 工厂类是整个模式的关键,包含了必要的逻辑判断。根据外界给定的消息,决定应当创建哪个具体类的实例,通过使用工厂类,外界可从直接创建具体产品对象的尴尬局转载 2016-08-18 15:50:59 · 231 阅读 · 0 评论 -
外观模式
应用场景: 1、不需要使用一个复杂系统的所有功能,而且可以创建一个新的类,包含访问系统的所有规则,如果只需要使用系统的部分功能,那么为新类创建的API将比原有系统简单得多 2、希望封装或隐藏原系统 3、希望使用原系统的功能,而且还希望增加一些附加功能。 特点: 1、从客户程序的角度来看,外观模式不仅简化了整个组件系统的接口,同时对于组件内部与外部客户程序来说,从某种程度上来说,达到了一种转载 2016-08-18 15:38:43 · 263 阅读 · 0 评论 -
抽象工厂模式
定义: 多个抽象产品类,派生出多个具体产品类;一个抽象工厂类,派生出多个具体工厂类;每个具体工厂类可创建多个具体产品的实现 结构图:通过使用抽象工厂模式,可以处理具有相同或相似等级结构中多个产品族中的产品对象的创建问题, 由于这两个产品族的等级结构相同,因此使用同一个工厂族也可处理这两个产品族的创建问题,这就是抽象工厂模式, 可以看出,每个工厂角色都有两个工厂方法,分别负责创转载 2016-08-18 14:16:46 · 273 阅读 · 0 评论 -
设计模式之建造者模式
一、初识建造者模式 建造者模式:将一个复杂对象的构建与它的表示相分离,使得同样的构建过程可以创建不同的表示。 通常包含以下几个角色: 1.builder:给出一个抽象接口,以规范产品各个组成部分的建造,此接口规定要实现复杂对象的哪些部分的创建,并不涉及具体部件的创建。 2.ConcreteBuilder:实现builder接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建,转载 2016-07-29 15:19:01 · 220 阅读 · 0 评论 -
备忘录模式
定义:作用是保存对象的内部状态,并在需要的时候恢复以前的状态,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可在需要时将该对象恢复到以前的状态。 结构图: 涉及的角色 发起人角色::负责创建一个备忘录对象,用于存储当前时刻originator自己的内部状态,originator可以根据需要决定将自己的哪些状态信息存储在备忘录中,并可使用备忘录恢复内转载 2016-08-17 17:28:55 · 265 阅读 · 0 评论 -
模板方法模式
模板方法模式: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类,该模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 使用场景: 一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。 各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复 控制子类扩展,模板方法只在特定点调用Hoo转载 2016-08-15 15:54:58 · 217 阅读 · 0 评论 -
单例模式
java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 懒汉式单例、 public class SingletonOne { //单例实例变量 private static转载 2016-07-29 15:12:42 · 141 阅读 · 0 评论 -
状态模式
状态模式: 当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类。 使用前提: 主要解决当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的逻辑判断转移到不同状态的一系列类中,可以把复杂的逻辑简化。 优点: 找出应用中需要变化之处,将它们独立出来,不和那些不需要变化的代码混合在一起,业务逻辑类中,将判断分离出“业务逻辑实现类”中,简化其编码和功能。业务逻辑实现转载 2016-08-12 17:38:42 · 364 阅读 · 0 评论