Design Pattern

来源:互联网 发布:打开淘宝客户端 编辑:程序博客网 时间:2024/06/03 10:06

//

//  main.cpp

//  Design_Pattern

//

//  Created by simon on 2017/7/24.

//  Copyright © 2017 simon. All rights reserved.

//


//多态工厂模式

#include <iostream>

using namespacestd;


class SingleCore

{

public:

   virtual void show()=0;

};


class SingleCore_A:publicSingleCore

{

public:

   void show(){cout<<"Single A"<<endl;}

};


class SingleCore_B:publicSingleCore

{

public:

   void show(){cout<<"Single B"<<endl;}

};


class MultiCore

{

public:

   void virtual  show()=0;

};


class MultiCoreA:publicMultiCore

{

public:

   void show(){cout<<"Multi A"<<endl;}

};


class MultiCoreB:publicMultiCore

{

public:

   void show(){cout<<"Multi B"<<endl;}

};


class CoreFactory

{

public:

   virtual SingleCore* CreateSingleCore()=0;

   virtual MultiCore* CreateMultiCore()=0;

};


class CoreFactoryA:publicCoreFactory

{

public:

   SingleCore* CreateSingleCore(){returnnew SingleCore_A;}

   MultiCore* CreateMultiCore(){returnnew MultiCoreA;}

};


class CoreFactoryB:publicCoreFactory

{

public:

   SingleCore* CreateSingleCore(){returnnew SingleCore_B;}

   MultiCore* CreateMultiCore(){returnnew MultiCoreB;}

};


int main(int argc,char** argv)

{

    CoreFactoryA a;

   SingleCore* single=a.CreateSingleCore();

    single->show();

    

    CoreFactoryB b;

   MultiCore* multi=b.CreateMultiCore();

    multi->show();

}

原创粉丝点击