图解设计模式

一、创建型:

二、结构型:

  

(Adapter):适配器模式:类适配、实例适配、接口适配。

(Decorator、Bridge、Proxy):装饰器、桥接、代理

  注意比较装饰器和代理:装饰可以选择被装饰的对象,而代理则不能。

(Facade、Composite、Flyweight):外观、组合、享元

时间: 2024-10-09 22:47:03

图解设计模式的相关文章

【图解设计模式】Mediator模式

组员向仲裁者报告,仲裁者向组员下达指示.组员之间不再相互询问和相互指示. 示例 一个GUI应用程序,它展示了一个登录对话框,用户在其中输入正确的用户名和密码后可以登录. 可以选择作为游客访问(Guest)或是作为用户登录(Login) 作为用户登录时,需要输入正确的用户名(Username)和密码(Password) 点击OK按钮可以登录,点击Cancel按钮可以取消登录 类图 时序图 Mediator接口 1234 public interface { public abstract void

图解设计模式总览

第1部分 适应设计模式 Iterator(迭代器) 模式-一个一个遍历 Adapter(适配器) 模式-加个"适配器"模式以便于复用 第2部分 交给子类 Template Method(模板方法) 模式-将具体处理交给子类 Factory Method(工厂方法) 模式-将实例的生成交给子类 第3部分 生成实例 Singleton(单例) 模式-只有一个实例 Prototype(原型) 模式-通过复制生成实例 Builder(建造者) 模式-组装复杂的实例 Abstract Facto

图解设计模式之Adapter模式

什么是Adapter模式  Adapter模式即适配器模式,对于适配器的理解参考现实生活中把交流电转换成直流电的电源适配器,用于填补现有的程序和所需的程序之间差异的设计模式就是Adapter模式,有以下两种实现方式: 1. 类适配器模式(使用继承的适配器) 2. 对象适配器模式(使用委托的适配器)所谓继承和委托的区别在哪呢?委托是指将某个方法中的实际处理交给其他实例的方法,继承则是自己进行处理,下面分别看下两种实现方式: 代码清单 这里有一个需要被适配的Banner类 /** * 被适配角色:交

图解设计模式-Iterator模式

使用抽象类和接口,弱化类之间的耦合,使类可以更容易组件化 不使用具体类编程,要优先使用抽象类和接口编程 角色划分: Iterator迭代器接口,定义遍历元素的接口,hasNext判断是否有下一个.next获得下一个值 ConcreteIterator:迭代器具体的实现类,实现了hasNext.next两个方法,需要根据具体的被迭代对象进行自定. Aggregate集合接口,包含了获得Iterator迭代器的方法 ConcreteAggregate集合的具体实现类,实现了了获得Iterator迭代

图解设计模式-Template Method模式

父类中定义处理流程,子类中实现具体处理的模式称为Template Method模式 优点: 可以保持逻辑处理通用化(父类中定义处理流程) 父类与子类之间协作(子类实现父类的抽象方法) 父类与子类保持一致性(子类继承父类) 延伸: 子类可以使用父类的方法 可以通过子类增加方法以实现新功能 子类重写父类的方法可以改变程序的行为 角色划分: AbstractClass抽象类:负责实现模块方法,还负责声明在模板方法中所使用到的抽象方法,这些抽象方法由子类负责实现. ConcreteClass具体类:实现

图解设计模式-factory Method模式

用Template Method模式构建生成实例的工厂. 在factory method模式中,父类决定实例的生成方式,但是不决定所要生成的具体类,具体的处理交给子类负责. 角色: Product产品:它定义了在Factory Method模式中的生成的那些实例所持有的接口,由Product类扮演. Creator创建者:负责生成Product角色的抽象类,由Factory类扮演. ConcreteProduct具体产品:决定具体的产品,由IDCard类扮演. ConcreteCreator具体

图解设计模式-Strategy模式

Strategy(算法)模式可以整体的替换算法的实现部分. 重点说明: 使用委托这种弱关联关系可以很方便的整体替换算法. 角色: Strategy策略:该角色负责决定实现策略所需要的接口api. ConcreteStrategy具体策略:该角色负责实现Strategy角色接口api.即负责实现具体的策略. Context上下文:负责使用Strategy角色,Context角色保存了ConcreteStrategy角色的实例,并使用ConcreteStrategy角色去实现需求. 代码: publ

1.设计模式-------Iterator

本文主要是参考<图解设计模式>写的读书笔记: 开发中我用到遍历集合时候,无非我常用的就是简单的for循环,foreach,iterator 这三种方式进行遍历! 当然这三种的效率: 学习Iterator模式时候,书上给的案例是这样的,一个书架上面放满了书,书下面有个指针! 大概就这样,画的不好! 首先这书架也就相当于是一个集合,集合中得book就是相当于集合元素,下面的指针就相当于Iterator中得hasNext(): 为甚有那么简单的for循环不用,非要搞Iterator干嘛,我第一次时候

设计模式(1) -- 迭代模式

Iterator(迭代器)接口在Java中可以用来嵌入对象当中来实现具体应用,在设计模式中强调的是"低耦合","高复用","不要用具体代码来编程,要优先使用接口和抽象类来编程." 这个实例当中不管BookShelf如何变化,只要BookShelf类可以返回重写了Iterator方法(hasNext,Next)的BookShelfIterator类,无论改成数组还是集合测设代码都可以正常运转,这便是组件化,当一个组件发生改变时,可以不用修改其他组件