工厂方法模式

2016-08-03  本文已影响0人  tdeblog

1.定义#

定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。由工厂类和产品类组成,工厂类负责产生产品。工厂方法模式是new一个对象的替代品。生产产品由反射机制实现。

2.类图#

类图

3.实现#

3.1抽象产品类##

public abstract class Product {
  public void method(){
    //抽象产品类公共方法
  }
  public abstract void method2();
}

3.2具体产品类##

public class ConcreteProduct1 extends Product {
  public void method2(){}
}

public class ConcreteProduct1 extends Product {
  public void method2(){}
}

3.3抽象工厂类##

public abstract class Factory{
  public abstract <T extends Product> T createProduct(Class<T> c);
}

3.4具体工厂类##

public class ConcreteFactory extends Factory {
  public <T extends Product> T createProduct(Class<T> c){
    Product product = null;
    try{
      product = (Product)Class.forName(c.getName()).newInstance();
    } catch (Exception e){
      //异常处理
    }
    return (T)product;
  }
}

3.5场景类##

public class Client{
  public static void main(String args[]) {
    Factory factory = new ConcreteFactory();
    Product product = factory.createProduct(ConcreteProduct.class);
  }
}

4.优点#

1.良好的封装,代码结构清晰。
2.扩展性优秀,很容易添加新的产品类。
3.屏蔽产品类细节,调用者不用关心产品内部的变化,只要产品借口不变。
4.解耦框架,高层模块只需要知道产品的抽象类。

上一篇 下一篇

猜你喜欢

热点阅读