
设计模式
文章平均质量分 79
指尖的游戏
这个作者很懒,什么都没留下…
展开
-
最常用的12种设计模式
1.策略模式(Strategy): 定义了算法家族, 分别封装起来, 让它们之间可以互相替换. 比如Collections.sort(List list, Comparator c); 可以通过实现多个Comparator接口来达到多种排序的目的. 2.装饰着转载 2011-08-03 11:54:08 · 488 阅读 · 0 评论 -
设计模式之(十六)命令模式Command
Command模式是最让我疑惑的一个模式,我在阅读了很多代码后,才感觉隐约掌握其大概原理,我认为理解设计模式最主要是掌握起原理构造,这样才对自己实际编程有指导作用.Command模式实际上不是个很具体,规定很多的模式,正是这个灵活性,让人有些confuse. Command定义转载 2011-08-08 15:20:48 · 538 阅读 · 0 评论 -
设计模式之(十四)观察者模式Observer
Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Observer(观察者)模转载 2011-08-08 10:47:12 · 493 阅读 · 0 评论 -
设计模式之(十一)享元模式Flyweight
Flyweight模式定义: 避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). 为什么使用? 面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几转载 2011-08-08 09:36:56 · 328 阅读 · 0 评论 -
设计模式之(十五)职责链Chain of Responsibility
Chain of Responsibility定义 Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合,唯一共同点是在他们之间传递request. 也就是说,来了一个请求,A类先处理转载 2011-08-08 14:29:59 · 390 阅读 · 0 评论 -
设计模式之(十二)模板模式Template
Template模板模式定义: 定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 使用Java的抽象类时,就经常会使用到Template模式,因此Template模式使用很普遍.而且很容易理解和使用。 public abstract class转载 2011-08-08 10:27:52 · 484 阅读 · 0 评论 -
设计模式之(十七)状态模式State
由简单的开始会比较好理解状态模式的作用,先来看一个例子,如果您有一个只能顺时针转动的瓦斯开关,转动一次的状态为off、 small fire、medium fire与large fire,您如何在程式中控制状态的变化与行为呢?一个最简单的方式就是用if..else或是switch转载 2011-08-09 15:53:16 · 483 阅读 · 0 评论 -
设计模式之(十八)策略模式Strategy
Strategy策略模式是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类. Stratrgy应用比较广泛,比如, 公司经营业务变化图, 可能有两种实现方式,一个是线条曲线,一个是框图(bar),这是两种算法,可以使用Strategy实现.转载 2011-08-09 16:29:32 · 510 阅读 · 0 评论 -
设计模式之(十九)中介者模式Mediator
Mediator中介者模式定义: 用一个中介对象来封装一系列关于对象交互行为. 为何使用Mediator? 各个对象之间的交互操作非常多;每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator模式,可以使各个对象间转载 2011-08-09 16:36:58 · 660 阅读 · 0 评论 -
设计模式之(二十)解释器模式Interpreter
对于一个具有层次节点关系的问题来说,如果您要剖析每一个节点,您可以使用Interpreter模式,直译器模式有些类似演算法中的个别击破方式,对每一个父节点我们剖析出其子节点组合,然而交给子节点剖析物件继续剖析,直到剖析至终端节点为止。 举个例子来说明好了,先说明的是,这个例转载 2011-08-09 16:56:44 · 938 阅读 · 0 评论 -
设计模式之(十三)备忘机制Memento
Memento备望录模式定义: memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态. Memento模式相对也比较好理解,我们看下列代码: public class Originator { publi转载 2011-08-08 10:35:55 · 459 阅读 · 0 评论 -
设计模式之(十)桥接模式Bridge
Bridge模式定义 : 将抽象和行为划分开来,各自独立,但能动态的结合。 任何事物对象都有抽象和行为之分,例如人,人是一种抽象,人分男人和女人等;人有行为,行为也有各种具体表现,所以,“人”与“人的行为”两个概念也反映了抽象和行为之分。 在面向对象设计的基本概念中,对象这转载 2011-08-05 16:47:12 · 407 阅读 · 0 评论 -
设计模式之(三)创建者builder
一、概述 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的转载 2011-08-04 11:07:17 · 463 阅读 · 0 评论 -
Java中的clone
说到原型模式,就不得不说一下java中的深复制和浅复制了。 先看一个例子: Student s=new Student("wangyan",23); Student s2=s; s2.setName("ZhangSan"); //实际上改的是Studen转载 2011-08-03 16:50:15 · 888 阅读 · 0 评论 -
设计模式之(四)单态Singleton
转自http://www.jdon.com/designpatterns/singleton.htm 单态定义: Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。转载 2011-08-04 14:58:28 · 459 阅读 · 0 评论 -
设计模式之(五)外观模式Facade
Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。在这里我想举一个例子:比如,现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎(子系统1),转载 2011-08-04 15:31:49 · 441 阅读 · 0 评论 -
设计模式之(六)代理模式Proxy
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼 得水,享受游刃有余的乐趣. Proxy 是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结 构,Proxy 是代理的意思,我们也许有代理服务器等概念,代理概念可以解释原创 2011-08-04 15:49:09 · 485 阅读 · 0 评论 -
设计模式之(七)适配器模式Adapter
Adapter适配器模式是一种结构型模式,主要应对:由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是,新环境要求的接口是现存对象所不满足的。 《设计模式》中说道:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不转载 2011-08-05 10:32:15 · 659 阅读 · 0 评论 -
设计模式之(八)组合模式Composite
今天开始学习Composite模式,首先让我们看一下它的定义: 将对象组合成树形结构以表示“整体—部分”的层次结构。Composite模式使单个对象和组合对象的使用具有一致性。 下面给出这个模式的结构图: 如果把Composite模式看成转载 2011-08-05 11:27:23 · 515 阅读 · 0 评论 -
设计模式之(九)装饰模式Decorator
装饰模式:Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee.这两种实体在Decorator模式中是必须的. Decorator定义: 动态给一个对象添加一些额外的职转载 2011-08-05 15:26:16 · 465 阅读 · 0 评论 -
设计模式之(一)工厂模式Factory
在软件系统中,经常面临着“某个对象”由于需求的变化,对象的具体实现面临着剧烈的变化。为了应对这种变化我们抽象出它比较稳定的接口,隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变,这就是要说的Factory Method模式了。 定义原创 2011-08-03 11:01:55 · 645 阅读 · 0 评论 -
设计模式之(二)原型模式Prototype
一、介绍 原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。 原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序转载 2011-08-03 15:49:40 · 567 阅读 · 0 评论 -
设计模式之(二十一)访问者模式Visitor
在Java中所有的物件都继承自Object物件,这样作的优点之一,就是使得一些集合物件的资料结构容易管理,例如您可以将任何型态的物件放入Vector中。 然而现在有个问题是,如果您的集合(connection)物件中不仅储存一种型态的物件,如果想要对这些物件作出一些个别化的转载 2011-08-10 09:48:22 · 537 阅读 · 0 评论