JAVA常用设计模式详解大全

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java常用设计模式

目录

设计模式 (2)

创建模式 (2)

设计模式之Factory -工厂模式 (2)

设计模式之FACTORY METHOD -工厂方法模式 (2)

设计模式之Builder -建造模式 (4)

设计模式之PROTOTYPE -原始模型模式 (5)

设计模式之Singleton -单例模式 (6)

结构模式 (7)

设计模式之Adapter -适配器 (7)

设计模式之Bridge -桥梁模式 (8)

设计模式之Composite -合成模式 (9)

设计模式之DECORATOR -装饰模式 (10)

设计模式之Facade -门面模式 (12)

设计模式之FLYWEIGHT -享元模式 (13)

设计模式之PROXY -代理模式 (14)

行为模式 (15)

设计模式之Chain of Responsibility -职责链 (15)

设计模式之COMMAND - 命令模式 (16)

设计模式之INTERPRETER -解释器模式 (17)

设计模式之ITERATOR -迭代子模式 (18)

设计模式之MEDIATOR -调停者模式 (19)

设计模式之MEMENTO -备忘录模式 (20)

设计模式之OBSERVER -观察者模式 (21)

设计模式之STATE -状态模式 (23)

设计模式之STRATEGY-策略模式 (24)

设计模式之TEMPLATE METHOD-模板方法模式 (25)

设计模式之VISITOR -访问者模式 (26)

设计模式

分类

创建模式

结构模式

行为模式

优点

面向界面编程

降低耦合性

增加灵活性

创建模式

设计模式之Factory -工厂模式

客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。

缺点是当产品修改时,工厂类也要做相应的修改。

设计模式之FACTORY METHOD -工厂方法模式

追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory

public class Factory{

public static Sample creator(int which){

//getClass 产生Sample 一般可使用动态类装载装入类。

if (which==1)

return new SampleA();

else if (which==2)

return new SampleB();

}

核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。

请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。

public abstract class Factory{

public abstract Sample creator();

public abstract Sample2 creator(String name);

}

public class SimpleFactory extends Factory{

public Sample creator(){

.........

return new SampleA

}

public Sample2 creator(String name){

.........

return new Sample2A

}

}

public class BombFactory extends Factory{

public Sample creator(){

......

return new SampleB

}

public Sample2 creator(String name){

......

return new Sample2B

}

设计模式之Builder -建造模式

将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM 我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你”builder。(这一定比美军在伊拉克用的翻译机好卖)

public interface Builder {

//创建部件A比如创建汽车车轮

void buildPartA();

//创建部件B 比如创建汽车方向盘

void buildPartB();

//创建部件C 比如创建汽车发动机

void buildPartC();

//返回最后组装成品结果(返回最后装配好的汽车)

//成品的组装过程不在这里进行,而是转移到下面的Director类别中进行。

//从而实现了解耦过程和部件

Product getResult(); }

public class Director {

private Builder builder;

public Director( Builder builder ) {

this。builder = builder;

}

// 将部件partA partB partC最后组成复杂对象

//这里是将车轮方向盘和发动机组装成汽车的过程

相关文档
最新文档