
设计模式
文章平均质量分 90
新拖拉机
对技术高峰,身虽不能至,而心向往之。
GitHub空间:https://github.com/pumadong
展开
-
设计模式学习笔记--模板方法(Template Method)模式
模板方法模式:准备一个抽象类,将部分逻辑以具体方法以及具体构造的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方法实现这些抽象的方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。原创 2014-04-11 11:05:11 · 1991 阅读 · 0 评论 -
设计模式学习笔记--单例(Singleton)和多例(Multiton)
单例(Singleton)模式一个最重要的特点是类的构造方法是私有的,从而避免了外部利用构造方法直接创建多个实例,同时它是自实例化的;多例模式(Multiton Pattern),实际上就是单例模式的自然推广。原创 2014-03-30 20:43:45 · 2574 阅读 · 0 评论 -
设计模式学习笔记--工厂(Factory)、建造(Builder)和原型(Prototype)
创建模式(Creational Pattern)一共有七种,分布是:简单工厂模式、工厂方法模式、抽象工厂模式、建造模式、原型模式、单例模式、多例模式。本篇介绍了其中的5种:简单工厂、工厂方法、抽象工厂、建造者、原型。原创 2014-03-31 11:34:45 · 4039 阅读 · 0 评论 -
设计模式学习笔记--策略(Strategy)模式
策略模式,其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。原创 2014-04-12 09:57:14 · 1273 阅读 · 0 评论 -
设计模式学习笔记--设计模式在Java I/O中的应用(装饰模式和适配器模式)
在Java 语言I/O库的设计中,使用了两个结构模式,即装饰模式和适配器模式。本篇围绕这两个模式讨论Java I/O库的设计。原创 2014-04-06 17:43:13 · 7546 阅读 · 1 评论 -
设计模式学习笔记--迭代(Iterator)模式
首先要说,关于迭代模式,是和Java中的聚集密切相关的。体现的是“开-闭”原则,强调的是封装变化的思想。迭代器是在JDK2-5时代的聚集遍历模式,从JKD5开始,对聚集的遍历,推崇for(E e:Es)的形式,更少的变量,更不易出错,迭代器是有点过时了,所以我们学习迭代模式,是为了开阔一下视野,理解其思想。原创 2014-10-14 12:03:03 · 1092 阅读 · 0 评论 -
设计模式学习笔记--享元(Flyweight)模式
享元模式以共享的方式高效地支持大量的细粒度对象。享元模式分为单纯享元模式和复合享元模式。享元模式不是一种常用的模式,我个人不曾记得哪个项目真正使用过享元模式。原创 2014-04-07 13:56:58 · 1830 阅读 · 0 评论 -
设计模式学习笔记--代理(Proxy)模式
代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。关于代理模式,日常开发过程中的使用场景还是很多的。比如调用Web Service,我们总会自动或手动生成客户端的代理类,这是远程代理模式;对于登录,也总可以使用保护代理和智能引用代理。原创 2014-04-07 09:55:16 · 5610 阅读 · 1 评论 -
设计模式学习笔记--适配器(Adapter)模式
适配器(Adapter)模式把一个类的接口(源)变换成客户端所期待的另一种接口(目的),从而使 原本 因接口不匹配而无法在一起工作的两个类能够在一起工作;它有“类的适配器模式”和“对象的适配器模式”两种不同的形式。原创 2014-03-31 00:33:45 · 1731 阅读 · 0 评论 -
设计模式学习笔记--备忘录(Mamento)模式
备忘录模式(Memento Pattern),又叫快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。备忘录对象是一个用来存储另一个对象内部状态的快照的对象。备忘录模式的用意,是在不破坏封装(enscapsolution)的条件下,将另一个对象的状态捕捉(capture)住,并外部(Externalize)化,存储起来,从来可以在将来合适的时候,把这个对象还原到存储起来的状态。原创 2014-10-17 17:20:57 · 1212 阅读 · 0 评论 -
设计模式学习笔记--状态(State)模式
状态模式和策略模式容易混淆。状态模式从结构图、示例性演示代码来看,都和策略模式一致,他们最大的区别,是内涵不同。策略模式,是对一种业务场景,多种算法的实现,比如促销 --》多买多折促销、满减促销;状态模式,是对一种业务场景,多种状态的封装,比如在对于TCP协议,对于每种状态都封装一个具体状态类。原创 2014-10-15 15:53:19 · 1128 阅读 · 0 评论 -
设计模式学习笔记--桥梁(Bridge)模式
桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)解耦,使得二者可以独立地变化”。桥梁模式的目的是为了降低耦合。原创 2014-04-07 16:51:55 · 1706 阅读 · 0 评论 -
设计模式学习笔记--访问者(Visitor)模式
访问者模式的目的是封装一些施加于某种数据元素结构之上的操作。访问者模式适用于数据结构相对固定的系统,它把数据结构和作用于数据结构上的操作之间的耦合解脱开,使得操作集合可以相对自由的演化。数据结构的每一个节点,都可以接受一个访问者的调用,此节点向访问者对象传入节点对象,而访问者对象则反过来执行节点对象的操作。这样的过程叫做双重分派。节点调用访问者,将它自己传入,访问者则将某算法针对此节点来执行。双重分派意味着施加于节点之上的操作是基于访问者和节点本身的数据类型,而不仅仅是其中的一者。原创 2014-10-28 15:10:48 · 1346 阅读 · 0 评论 -
设计模式学习笔记--观察者(Observer)模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同事监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新。原创 2014-04-09 23:29:40 · 1402 阅读 · 0 评论 -
设计模式学习笔记--合成(Composite)模式
合成(Composite)模式,有时又叫做部分-整体(Part-Whole)模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。合成模式的典型应用是分类树,权限树等场景。原创 2014-04-02 22:44:50 · 2186 阅读 · 0 评论 -
设计模式学习笔记--门面(Facade)模式
外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。门面模式提供一个高层次的接口,使得子系统更 易于使用。在基于SOA的框架设计中,各个子系统之间的接口都可以看做是门面模式。原创 2014-04-07 15:48:34 · 1487 阅读 · 0 评论 -
设计模式学习笔记--装饰(Decorator)模式
装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式使用原来被装饰的类的一个子类的实例,把客户端的调用委派到被装饰类。装饰模式的关键在于这种扩展是完全透明的。JDK的IO的实现是装饰模式的典型应用。原创 2014-04-04 20:44:23 · 1268 阅读 · 0 评论 -
设计模式学习笔记--不变(Immutable)模式
一个对象的状态在对象创建之后就不再变化,这就是所谓的不变模式(Immutable Pattern)。不变模式缺少改变自身状态的行为,因此它是关于行为的,所以把它划归为行为模式。原创 2014-04-11 22:35:45 · 1972 阅读 · 0 评论 -
Java之旅--设计模式
设计模式,先看名字,设计,模式,目的是为了设计,为了设计给出一些定义出来的,总结出来的,抽象出来的办法,叫做模式。设计是什么?软件构建中的设计,承前(需求分析、产品定义、架构选择),启后或者伴随(编码、测试),包含结构、包、类、子程序,而模式讲的就是这些东西。这次关于设计模式的分享不是纯技术,是思想。思想的东西,很难讲,需要听众具备恰当的理解层次,而这种层次的进化,远比一种技术或者工具的进步难以捉摸,有时十年循环不如一夕顿悟。原创 2015-05-28 22:30:51 · 1355 阅读 · 2 评论