摘要: 一、什么是建造者模式意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。模型图:二、建造者模式实例需求:这种模式用于快餐店制作儿童餐。典型的儿童餐包括一个主食,一个辅食,一杯饮料和一个玩具(例如汉堡、炸鸡、可乐和玩具车)。这些在不同的儿童餐中可以是不同的,但是组合成儿童餐的过程是相同的。无论顾客点的是汉堡,三名治还是鸡肉,过程都是一样的。柜台的员工直接把主食,辅食和玩具放在一起。这些是放在一个袋子中的。饮料被倒入杯中,放在袋子外边。这些过程在相互竞争的餐馆中是同样的。示意图如下:客户端:顾客。想去买一套套餐(这里面包括汉堡,可乐,薯条),可以有1号和2号两种套餐供顾客选 阅读全文
posted @ 2012-04-26 15:53 技术勇者 阅读(1077) 评论(1) 推荐(0) 编辑
摘要: 一、什么是门面模式门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。意图:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。示意图:二、门面模式的效果及实现要点Façade模式对客户屏蔽了子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便。Façade模式实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件往往是紧耦合的。松耦合关系使得子系统的组件变化不会影响到它的客户。如果应用需要,它并不限制它 阅读全文
posted @ 2012-04-21 14:27 技术勇者 阅读(633) 评论(1) 推荐(0) 编辑
摘要: 一、什么是模板方法模式摸板方法(Template Method)模式是一种非常简单而又经常使用的设计模式.先创建一个父类,把其中的一个或多个方法留给子类去实现,这实际上就是在使用摸板模式.所谓的摸板模式可以这样来理解:"在一个类中定义一个算法,但将此算法的某些细节留到子类中去实现.换句话说,基类是一个抽象类,那么你就是在使用一种简单形式的摸板模式."意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。结构图:结构与参与者:抽象模板角色定义了一个或多个抽象操作,以便让子类实现 阅读全文
posted @ 2012-04-16 15:11 技术勇者 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 一、什么是原型模式原型模式(Prototype Pattern)也是一种创建型模式,它关注的是大量相似对象的创建问题。我们经常会遇到这样的情况:在系统中要创建大量的对象,这些对象之间具有几乎完全相同的功能,只是在细节上有一点儿差别。意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。结构图原型模式的基本实现原型类: 1 public abstract class Prototype 2 { 3 private int id; 4 5 public Prototype(int id) 6 { 7 this.id = id; 8 }... 阅读全文
posted @ 2012-04-14 00:15 技术勇者 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 一、什么是工厂方法模式工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不接触哪一个产品类被实例化这种细节。这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。在Factory Method模式中,工厂类与产品类往往具有平行的等级结构,它们之间一一对应。 阅读全文
posted @ 2012-04-08 22:25 技术勇者 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 一、什么是代理模式在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的复杂性,这时候可以在客户程序和目标对象之间增加一层中间层,让代理对象来代替目标对象打点一切。这就是本文要说的Proxy模式。意图:为其他对象提供一种代理以控制对这个对象的访问。结构图:代理模式涉及的角色:抽象主题角色.声明了代理主题和真实主题的公共接口,使任何需要真实主题的地方都能用代理主题代替。代理主题角色.含有真实主题的引用,从而可以在任何时候操作真实主题,代理主题功过提供和真实主题相同的接口,使它可以随时代替真实主题.代理主题通过持有真实主题的引用 阅读全文
posted @ 2012-04-05 23:21 技术勇者 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 一、什么是装饰模式装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的类图如下图所示:在装饰模式中的各个角色有:抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。具体构件(Concrete Component)角色:定义一个将要接收附加责任的类。装饰(Decorator)角色:持有一个构件(Component)对象的实例,并定义一个与抽象构件接口一致的接口。具体装饰(Concrete Decorator)角色:负责给构件对象"贴上"附加的责任。二、装饰模式 阅读全文
posted @ 2012-04-04 23:51 技术勇者 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 一、什么是单例模式单例模式(Singleton)是几个创建模式中最对立的一个,它的主要特点不是根据用户程序调用生成一个新的实例,而是控制某个类型的实例唯一性,通过下图我们知道它包含的角色只有一个,就是Singleton,它拥有一个私有构造函数,这确保用户无法通过new直接实例它。除此之外,该模式中包含一个静态私有成员变量instance与静态公有方法Instance()。Instance()方法负责检验并实例化自己,然后存储在静态成员变量中,以确保只有一个实例被创建。二、单例模式的特点有一个私有的无参构造函数,这可以防止其他类实例化它,而且单例类也不应该被继承,如果单例类允许继承那么每个子类都 阅读全文
posted @ 2012-03-29 23:58 技术勇者 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 一、什么是简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或接口。简单工厂模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常根据一个条件(参数)来返回不同的类的实例。意图:提供一个类,由它负责根据一定的条件创建某一具体类的实例。参与者:工厂角色(Creator):是简单工厂模式的核心,它负责实现创建所有具体产品类的实例。工厂类可以被外界直接调用,创建所需的产品对象。抽象产品角色(Product):是所有具体产品角色的父类,它负责描述所有实例所共有的公共接口。具体产品角色(Concrete Product):继承自 阅读全文
posted @ 2012-03-25 01:16 技术勇者 阅读(395) 评论(0) 推荐(1) 编辑
摘要: 一、策略模式的组成抽象策略角色: 策略类,通常由一个接口或者抽象类实现。具体策略角色:包装了相关的算法和行为。环境角色:持有一个策略类的引用,最终给客户端调用。二、 策略模式的概念策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary indepe 阅读全文
posted @ 2012-03-22 23:39 技术勇者 阅读(446) 评论(0) 推荐(0) 编辑