Java常用设计模式
目录
设计模式    1
创建模式    2
设计模式之Factory -工厂模式    2
设计模式之FACTORY METHOD -工厂方法模式    2
设计模式之Builder  -建造模式    4
设计模式之PROTOTYPE -原始模型模式    5
设计模式之Singleton -单例模式    6
结构模式    7
设计模式之Adapter  -适配器    7
设计模式之Bridge -桥梁模式    8
设计模式之Composite -合成模式    10
设计模式之DECORATOR -装饰模式    11
设计模式之Facade -门面模式    13
设计模式之FLYWEIGHT -享元模式    14
设计模式之PROXY -代理模式    15
行为模式    16
设计模式之Chain of Responsibility -职责链    16
设计模式之COMMAND - 命令模式    17
设计模式之INTERPRETER -解释器模式    19
设计模式之ITERATOR -迭代子模式    19
设计模式之MEDIATOR -调停者模式    21
设计模式之MEMENTO -备忘录模式    22
设计模式之OBSERVER -观察者模式    23
设计模式之STATE -状态模式    25
设计模式之STRATEGY-策略模式    26
设计模式之TEMPLATE METHOD-模板方法模式    27
设计模式之VISITOR -访问者模式    28
设计模式
分类
创建模式
结构模式
行为模式
优点
面向界面编程
降低耦合性
增加灵活性
创建模式
设计模式之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(){
    ......
java中常用的设计模式有哪些    return new SampleB
  }
  public Sample2 creator(String name){
    ......
    return new Sample2B
  }
}
设计模式之Builder  -建造模式
将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。
建造模式可以强制实行一种分步骤进行的建造过程。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。