论文封面格式模板:工厂方法模式(Factory Methond)案例分析 - jia

来源:百度文库 编辑:九乡新闻网 时间:2024/05/05 11:03:06

案例分析:

工厂方法定义一个用于创建对象的接口,但是让子类决定实例化哪个类。压注成型演示了这种模式。塑料玩具制造商加工塑料粉,将塑料注入到希望形状的模具中。玩具的类别(车,人物等等)是由模具决定的。

意图:

它的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。在工厂方法模式中,核心的工厂类不再负责所有的产品的创建,而是将创建的工作交给子类去做。这个核心类成为一个抽象工厂的角色,仅负责给出具体工厂子类必须实现的接口,而不接触哪一个产品类实例化的细节。

结构图:

程序代码:

#include

 
class cMaMoJu

{

public:

     cMaMoJu()

     {

         cout<<"生产玩具马模具"<

     }

};

 
class cCheMoJu

{

public:

     cCheMoJu()

     {

         cout<<"生产模具车模具"<

     }

};

 
class cWanJuGongChang

{

public:

     void ZhiZaoWanJu()

     {

         MakeMoJu();

         ZhuFen();

         MeiHua();

     }

protected:

     virtual void MakeMoJu()=0;

    virtual void ZhuFen()=0;

     virtual void MeiHua()=0;

};

 
class cWanJuMaGongChang:public cWanJuGongChang

{

protected:

      void MakeMoJu()

      {

          cMaMoJu obj;

      }

     void ZhuFen()

      {

          cout<<"给该模具注入材料,使其成形"<

      }

      void MeiHua()

      {

          cout<<"美化产品,完成产品生产"<

      }

};

 
class cWanJuCheGongChang:public cWanJuGongChang

{

protected:

      void MakeMoJu()

      {

          cCheMoJu obj;

      }

     void ZhuFen()

      {

           cout<<"给该模具注入材料,使其成形"<

      }

      void MeiHua()

      {

          cout<<"美化产品,完成产品生产"<

      }

};

 
int main()

{

    cWanJuGongChang* obj=new cWanJuMaGongChang;

     obj->ZhiZaoWanJu();

 
     cout<

 
     obj=new cWanJuCheGongChang();

     obj->ZhiZaoWanJu();

     return 0;

}

运行结果:

生产玩具马模具

给该模具注入材料,使其成形

美化产品,完成产品生产

 
生产模具车模具

给该模具注入材料,使其成形

美化产品,完成产品生产

Press any key to continue


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jia_xiaoxin/archive/2008/08/21/2806407.aspx