设计模式的思维导图

设计模式的分类 设计原则

2017-05-27 21:18:13

阅读数 488

评论数 0

单一职责原则

意图规定类的职责 不要存在多于一个导致类变更的原因,及一个类一个职责 职责扩散:职责P被分解成粒度更小的P1和P2。 单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都需要遵循这一重要原则原则只有逻辑足够简单,才可以在代码级别上违反单一职责原则;只有类中方法数量足够少,才...

2017-05-27 13:37:58

阅读数 215

评论数 0

结构型模式总结

对结构性模式进行总结 对Adapter、Bridge、Facade进行对比总结 对Composite、Proxy、Decorator进行对比总结

2017-05-03 08:24:31

阅读数 257

评论数 0

享元模式(羽量级模式、蝇量级模式Flyweight,对象结构型模式)

运用共享技术有效的支持大量细粒度的对象。采用一个共享来避免大量拥有相同内容的“小类”的开销。在Java中可以使用类变量、缓存技术共享相同的部分。 享元模式分为:单纯享元模式和复合享元模式。 内蕴(内部)状态:共享的信息 外蕴(外部)状态:特有的信息

2017-05-03 08:21:24

阅读数 321

评论数 0

门面模式(Facade 外观模式,对象结构型模式)

意图单一窗口 为了子系统中的一组接口提供一个一致的界面 定义了一个高层接口,这个接口使得对一个子系统更加容易使用,并且保证系统之间业务逻辑的正确使用适用性在遇到以下情况使用Facade 模式 1. 当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式...

2017-05-02 08:56:06

阅读数 235

评论数 0

适配器模式(Adapter Pattern 类对象结构型模式)

意图将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。换个包装再利用。适用性以下情况使用Adapter模式: 1. 你想使用一个已经存在的类,而它的接口不符合你的要求 2. 你想创建一个可以复用的类,该类可以与其他不相关的...

2017-04-30 09:42:54

阅读数 382

评论数 0

桥梁模式(Bridge Pattern,对象结构型模式)

意图功能的类层次和实现的类层次 将抽象部分和它的实现部分分离,使它们都可以独立变化。(抽象部分并不是简单的实现与继承而是一种组合关系)实现部分是被抽象部分调用,以用来完成(实现)抽象部分的功能 将抽象化(多个实体中的共性概念)和实现化(抽象化的具体实现)解耦,使得二者可以独立变化。 分层功能...

2017-04-27 11:34:57

阅读数 187

评论数 0

组合模式(Composite Pattern,对象结构型模式)

意图将对象以树形结构组织起来,以达成“部分-整体”的层次结构,使客户端对单个对象和组合对象的使用具有一致性。 对容器和内容一视同仁,建立递归的结构。适用性以下情况使用Composite模式: 1. 你想表示对象的部分—整体层次结构 2. 你希望用户忽略组合对象与单个对象的不同,用户将统一...

2017-04-26 10:06:34

阅读数 344

评论数 0

装饰模式(Decorator Pattern、Wrapper Pattern,对象结构型模式)

意图动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更加灵活。 对装饰和内容一视同仁。 Decorator是“进行Decorate(装饰)的主体”的意思。适用性当需要给一个类添加新的行为的时候,但基于开闭原则,就使用装饰模式。 在以下情况使用Decora...

2017-04-25 11:11:30

阅读数 323

评论数 0

代理模式(Proxy Pattern、Surrogate Pattern 对象结构型模式)

定义需要在创建 为其他对象提供一种代理以控制对这个对象的访问,一种中介作用,隐藏细节适用性在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用Proxy模式。下面是一些可以使用Proxy模式常见的情况: 1. 远程代理(Remote Proxy)为一个对象在不同的地址空间提供局部代表。...

2017-04-24 08:42:35

阅读数 362

评论数 0

行为型模式总结

封装变化封装变化是很多行为模式的主题。当一个程序的某个方面的特征经常发生改变时,这些模式就定义一个封装这个方面的对象。这样当该程序的其他部分依赖于这个方面时,它们都可以与此对象协作。这些模式通常定义一个抽象类来描述这些封装变化的对象,并且通常该模式依据这个对象(这个主题也贯穿于其他种类的模式。Ab...

2017-04-22 14:07:18

阅读数 792

评论数 0

访问者模式(Visitor Pattern 对象行为型模式)

意图实现多重分配可以替换Instanceof 在结构中穿梭还同时做事 访问者模式顾名思义使用这个模式后就可以在不修改已有程序结构的前提下,通过添加额外的“访问者”来完成对已有代码功能的提升。 作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。(...

2017-04-22 11:40:57

阅读数 561

评论数 0

模板方法模式(Template Method Pattern,类行为型模式)

意图实际处理交给子类 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 为了解决变化对系统带来的影响而设计的,可以是系统扩展性增强。 TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。适用性 一次性实现一个算法的不变的部分,并将可变的行为留给子...

2017-04-21 08:15:55

阅读数 227

评论数 0

状态模式(State Pattern,对象行为型模式)

意图以类表示状态 允许一个对象在其内部状态改变时改变他的行为。对象看起来似乎修改了它的类。适用性在下面的两种情况下均可使用State模式: 1. 一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。 2. 一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的...

2017-04-20 08:11:45

阅读数 617

评论数 0

策略模式(Strategy Pattern,对象行为型模式)

意图定义一系列算法,把这些算法一个个封装成拥有相同接口的单独类,并且使他们之间可以互换。 把算法整个换掉。 定义一系列算法,把这些算法一个个封装起来,并且使它们可以相互替换。本模式使得算法可以独立于使用它的客户而变化。适用性在存在以下情况时使用Strategy模式 1. 许多相关的类仅仅是...

2017-04-19 08:28:55

阅读数 281

评论数 0

观察者模式(Observer Pattern,对象行为型模式,发布-订阅模式 Publish/Subscribe Pattern)

意图通知状态变化 定义对象间的一对多的依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都得到通知并被自动更新,由抽象类或接口实现。 推模式:目标角色复杂,并且观察者角色进行更行时必须得到一些具体的变化信息 拉模式:目标角色简单适用性在以下任一情况下可以使用观察者模式: 1. 当一个...

2017-04-18 08:31:01

阅读数 1006

评论数 0

备忘录模式(Memento Pattern,标记模式 Token Pattern,对象行为型模式)

意图存储状态,备忘录模式用于存储状态,在java中可以使用序列化。 在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。适用性在以下情况使用备忘录模式: 1. 必须保存一个对象在某一个时刻的(部分)状态,这样以后需要时它才能恢复到...

2017-04-17 09:27:33

阅读数 312

评论数 0

调停者模式(Mediator Pattern,对象行为型模式,中介者模式)

意图只要面对一个顾问 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用性在下列情况下使用中介者模式: 1. 一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且那一理解 2. 一个对象引用...

2017-04-16 08:32:27

阅读数 521

评论数 0

迭代模式(Iterator Pattern 游标模式 CursorPattern,对象行为型模式)

意图提供一种方法访问一个容器【聚合】(Container)对象中的各个元素,而不需暴露该对象的内部细节。适用性迭代器模式可用来: 1. 访问一个聚合对象的内容而无需暴露它的内部表示。 2. 支持对聚合对象的多种遍历 3. 为遍历不同的聚合结构提供一个统一的接口(即,支持多态迭代)结构参...

2017-04-15 11:04:16

阅读数 510

评论数 0

使用工厂模式、策略模式实现BASE64,MD5,SHA,HMAC,DES各种加密算法

定义枚举类型,包含已经集成的加密算法package com.sunld.manager_core.tools.encipher.enums; /** * @author 孙辽东 * <p>createDate:2014年3月7日 上午11:30:44</p> * ...

2017-04-14 11:22:14

阅读数 590

评论数 2

提示
确定要删除当前文章?
取消 删除
关闭
关闭