工厂模式

 1  简单工厂模式 , 工厂模式 和抽象工厂模式  

  简单工厂模式应用背景:

         假如有多个产品 ,那么每个产品就是一个类;如: class A  ,class B;,那么产品都是派生自一个 产品类;如:Class  Product;那么我们只需要提供一个 工厂类,如:class Factory ;里面提供一个接口,只需要知道,所需要生产的哪种类型的产品,返回所需要的产品对象 。

Product *  CreatAOrB( TYPE  AOrB )

{

if (A)

return  new A();

       else  if(B)

                  return  new B();

               else 

                 return NULL;

}

   2   工厂模式的应用背景:

        假如有多个类型的A B C D E F ...  那么 我们就必须修改类里面的东西,况且 类名太多,无法命名。违法了开放封闭 原则,那么我们该怎么办呐!!

     那么我们可以让特定的工厂生产特定的产品,FactoryA  FactoryB  分别实现各自的产品的生产,提供一个工厂的抽象类,让 FactoryA FactoryB  继承自Factory;

     Product * Create()

    {

 return  new A();

      }

Product * Create()

{

return  new B();

}

   那么我们只需要知道我门需要哪种产品,就知道哪个工厂来生产,等到我们所需要的工厂,创造我们所需要的产品

Factory *FyA= new  FactoryA ();

         FyA->Create();

        Factory  *FyB= new FactoryB();

         FyB->Create();       

    现在我门之需要创造我们所需要的类和实现创造该类的工厂。就可以解决问题了,但是当出现新的产品是不得不创造一个工厂来搞新的产品,这就是工厂模式的弊端

 3  那么抽象工厂模式的优点在哪里?

       之前的模式都是一个工厂对应一个产品。那么抽象工厂模式就也可以对应多个产品;


      

你可能感兴趣的:(编程思想,编程思想)