设计模式(三)--抽象工厂模式

来源:互联网 发布:玩天龙八部网络延迟 编辑:程序博客网 时间:2024/05/01 15:39

设计模式(三)--抽象工厂模式


抽象工厂模式的作用,可以处理具有相同等级结构的多个产品族中产品对象的创建问题。

首先解释一下产品族和相同等级结构的概念


相同等级结构:  抽象产品A和抽象产品B处于同一个继承等级(父类),因此成为具有相同等级结构。这里关键是要理解A和B都是相互独                         立的抽象产品,在JAVA中用接口定义。

产品族:具体产品A1和具体产品A2都是由抽象产品继承下来的产品,这两个子类成为父类的产品族




抽象工厂的类图如下



抽象工厂的源代码

public interface Creator  {      /**      * A的抽象工厂方法     */      public ProductA factoryA();      /**      * B的抽象工厂方法     */      public ProductB factoryB();  }  

具体工厂1的源码

public class ConcreteCreator1 implements Creator  {      /**      * A的具体工厂      */      public ProductA factoryA()      {          return new ProductA1();      }      /**      * B的具体工厂      */      public ProductB factoryB()      {          return new ProductB1();      }  } 

具体工厂2的源码

public class ConcreteCreator2 implements Creator  {      /**      * A的具体工厂      */      public ProductA factoryA()      {          return new ProductA2();      }      /**      * B的具体工厂      */      public ProductB factoryB()      {          return new ProductB2();      }  } 

抽象产品A源码

public interface ProductA  {  }  

抽象产品B源码

public interface ProductB  {  }  

具体产品A1源码

public class ProductA1 implements ProductA  {      public ProductA1()      {          //do something      }  }  

具体产品A2源码

public class ProductA2 implements ProductA  {      public ProductA2()      {          //do something      }  }  

具体产品B1源码

public class ProductB1 implements ProductB  {      public ProductB1()      {          //do something      }  }  

具体产品B2源码

public class ProductB2 implements ProductB  {      public ProductB2()      {          //do something      }  }  



0 0