设计模式---工厂模式

来源:互联网 发布:老男孩linux培训课件 编辑:程序博客网 时间:2024/06/06 19:50

工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。


#include<iostream>


using namespace std;

class LeiFeng
{
    public:
        void Sweep()
        {
            cout<<"sweep ..."<<endl;
        }
        void Wash()
        {
            cout<<"wash ..."<<endl;
        }
        void BuyRice()
        {
            cout<<"buyrice ..."<<endl;
        }
};

class Undergraduate:public LeiFeng
{

};

class Volunteer:public LeiFeng
{

};

class IFactory
{
    public:

    LeiFeng* CreateLeiFeng(){}
};

class UndergraduateFactory:public IFactory
{
    public:
        LeiFeng* CreateLeiFeng()
        {
            return new Undergraduate();
        }
};

class VolunteerFactory:public IFactory
{
    public:
        LeiFeng* CreateLeiFeng()
        {
            return new Volunteer();
        }
};

int main()
{
    IFactory *factory  = new UndergraduateFactory();
    LeiFeng *student = factory->CreateLeiFeng();

    student->BuyRice();
    student->Sweep();
    student->Wash();

    return 0;
}

原创粉丝点击