补充设计模式.pptVIP

  • 0
  • 0
  • 约1.6万字
  • 约 65页
  • 2019-11-28 发布于山东
  • 举报
设计模式 软件设计是一门艺术,是对“变化”的辩证处理:发现变化,隔离变化,以不变应万变。 设计模式 分类 创建模式 结构模式 行为模式 优点 面向接口编程 降低耦合性 增加灵活性 设计模式之Factory - 工厂模式 客户类和工厂类分开。客户任何时候需要某种产品,只需向工厂请求即可。客户无须修改就可以接纳新产品。 缺点是当产品修改时,工厂类也要做相应的修改。 设计模式之Factory - 工厂模式 public class Factory{    public static Sample creator(int which){   //产生Sample 一般可使用动态类 //装载装入类。   if (which==1)     return new SampleA();   else if (which==2)     return new SampleB();   } } FACTORY METHOD - 工厂方法 定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使一个类的实例化延迟到其子类。 public abstract class CarFactory{    public abstract Car creator(); } public class VW1Factory extends CarFactory{ public Car creator(){ ......... return new Jetta; } } public class VW2Factory extends CarFactory{ public Car creator(){ ...... return new Polo; } } Abstract Factory – 抽象工厂 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 public abstract class CarFactory{    public abstract Car creator();  public abstract Truck creator(String s); } public class VW1Factory extends CarFactory{  public Car creator(){     .........     return new Jetta;  }  public Truck creator(String s){     .........     return new BigTruck; } } public class VM2 extends CarFactory{  public Car creator(){     ......     return new Polo; }  public Truck creator(String s){     ......     return new LargeTruck; } } 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最后组成复杂物件 //汽车的组装过程 public void construct() {     builder.buildPartA();     builder.buildPartB();     builder.buildPartC();    } } PROTOTYPE - 原型模式 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 缺点是每一个类都必须配备一个克隆方法。 其实是将product和factory功能合二为一

文档评论(0)

1亿VIP精品文档

相关文档