自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cdt的专栏

The difference between who you are and who you want to be is what you do.

  • 博客(23)
  • 收藏
  • 关注

原创 单例模式(Singleton pattern)

定义:单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。 结构图: public class Singleton { public static Singleton s; public static Singleton GetInstance(){ if (s == null) { s = new Singlet

2015-01-23 23:29:46 299

转载 建造者(Bulider)

定义:将一个复杂对象的构建与它的  表示分离,使得同样的构建过程可以创建不同的表示,用户只需指定需要建造的类型就可以得到它们,而具体构建的过程和细节就不需要知                 道了。 结构图: public class Product { List parts = new ArrayList(); public void Add(String part){ parts.

2015-01-23 23:10:00 290

转载 抽象工厂

定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。 结构图: public abstract class AbstractFactory { public abstract Vehicle createVehicle(); public abstract Weapon createWeapon(); public abstract Food createFood

2015-01-23 22:59:57 231

转载 工厂方法(Factory Method)

定义:,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类.当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定创建的对象时我们就需要用到Factory Method 模式了.简单说来,Factory Method可以根据不同的条件产生不同的实例,当然这些不同的实例通常是属于相同的类型,具有共同的父类.Factory Method把创建这些实例的具体过程封装起来了,简化了

2015-01-23 22:41:52 298

转载 原型模式(Prototype)

定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 结构图: public class Resume implements Cloneable{ priva

2015-01-23 22:36:46 233

转载 组合模式(Composite)

定义:,将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 结构图: /* * 将对象组合成树状结构以表示部分-整体的层次结构,即组合模式使得用户对单个对象和组合对象的使用具有一致性 */ abstract class Company { String name; public Company(String name) {

2015-01-23 22:23:25 339

转载 适配器(Adapter)

定义:把一个类的接口变换成客户端所期待的另一种接口, Adapter模式使原本因接口不匹配(或者不兼容)而无法在一起工作的两个类能够在一起工作。又称为转换器模式、变压器模式、包装(Wrapper)器模式(把已有的一些类包装起来,使之能有满足需要的接口)。 结构图: /* * 需要适配的对象 */ public class Adaptee { public void SpecialRe

2015-01-23 22:09:35 265

转载 桥接模式

定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 结构图: public abstract class HandSetBrand { protected HandSetSoft soft; public HandSetSoft getSoft() { return soft; } public void setSoft(HandSetSoft soft) { t

2015-01-23 21:46:59 201

转载 外观模式(Facade)

定义:我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。 结构图: public class Fund { Stock1 g1; Stock2 g2; public Fund(){ g1 = new Stock1(); g2 = new Stock2(); } public void sell(

2015-01-23 21:19:43 209

转载 装饰模式(Decorator)

定义:动态的给一个对象添加一些额外的职责,就添加功能来说,装饰模式比生成子类更加灵活。 结构图: //汉堡基类 abstract class Humburger { protected String name; public String getName(){ return name; } public abstract double getPrice(); } //配料的基类(

2015-01-23 20:56:52 361

原创 代理模式(Proxy)

情节:为别人做嫁衣 定义:为其它对象提供提供一种代理以控制对这个对象的访问 结构图: interface GiveGift { public void GiveDolls(); public void GiveFlowers(); } public class MM { private String name; public String getName() { return

2015-01-23 20:45:52 370

转载 享元(Flyweight)

定义:运用共享技术有效地支持大量细粒度的对象。 Flyweight模式是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用。也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。在Flyweight模式中,由于要产生各种各样的对象,所以在Flyweight(享元)模式中常出现Factory模式。Flyweight的内部状态是

2015-01-23 10:20:47 214

原创 模板模式(Template Method)

定义:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。开闭原则是指一个软件实体应该对扩展开放,对修改关闭。也就是说软件实体必须是在不被修改的情况下被扩展。模板方法模式意图是由抽象父类控制顶级逻辑

2015-01-23 10:07:25 353

转载 命令(Command)

定义:每一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 结构图: public class Receiver { public void Action(){ System.out.println("执行请求"); } } abstract class Command { protected Receiver rec

2015-01-23 09:35:41 519

转载 观察者模式(Obeserver)

定义: interface Subject { public void Attach(Observer observer); public void Detach(Observer observer); public void Notify(); } interface Observer { void Update(); } public class ConcreteObserve

2015-01-23 09:27:51 697

转载 状态(State)

定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 结构图: abstract class State { public abstract void WriteProgram(Work w); } public class Work { private int hour; private State state; public Work(){ st

2015-01-23 08:50:46 287

原创 责任链(Chain of Responsibility)

情节:请假非要老总批准? 定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象做出来处理为止。 结构图: abstract class Handler { protected Handler successor; public Handler getSuccessor() { return suc

2015-01-23 08:28:24 268

转载 解释器(Interpreter)

情节:其实你不懂老板的心! 定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。  如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子,这样就可以构建一个解释器。 结构图: interface AbstractExpression { void Interpret(Context c

2015-01-22 19:29:50 262

原创 中介者(Mediator)

情节:世界需要和平! 定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 一般应用于一组对象以定义良好但是复杂的方式进行通讯的场合,以及想定制一个分布在多个类中的行为,而又不想生成太多的子类的场合。 结构图: public abstract class Mediator { public abstrac

2015-01-22 19:15:32 287

转载 访问者(Visitor)

情景:男人和女人! 定义:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。 结构图: interface State { void GetMan(Man concreteElementA); void GetWoman(Woman concreteElementB); } public class Fail implement

2015-01-22 18:31:22 234

转载 策略模式(Strategy)

定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。 类型:行为类模式 结构图: interface IStrategy { public void doSomething(); } class ConcreteStrategy1 implements IStrategy { public void doSomething() {

2015-01-22 18:28:25 295

原创 备忘录模式(Memento)

情节:如果再给我一次机会。。。 定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 结构图: public class GameRole { public int vit; public int atk; public int defense; public int getVit() { retu

2015-01-22 17:46:13 233

原创 迭代器模式(Iterator)

情景:乘车买票,不管你是谁! 定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 结构图: interface Iterator { boolean hasNext(); Object next(); } in

2015-01-22 17:11:01 207

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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