简单工厂模式
class SingleCore
{
public:
virtual void Show()=0;
};
class SingleCoreA:public SingleCore
{
public:
void show()
{
cout<<"coreA"<<endl;
}
};
class SingleCoreB:public SingleCore
{
public:
void show()
{
cout<<"coreB"<<endl;
}
};
class Factory
{
public:
virtual SingleCore* CreateSingleCore()=0;
};
class FactoryA:public Factory
{
public:
SingleCoreA* CreateSingleCore()
{
return new SingleCoreA;
}
};
class FactoryB:public Factory
{
public:
SingleCoreB* CreateSingleCore()
{
return new SingleCoreB;
}
};
抽象工厂模式:
class SingleCore
{
public:
virtual void show()=0;
};
class SingleCoreA:public SingleCore
{
public:
void show()
{
cout<<"single core A"<<endl;
}
};
class SingleCoreB:public SingleCore
{
public:
void show()
{
cout<<"single core B"<<endl;
}
};
class MultiCore
{
public:
virtual void show()=0;
};
class MultiCoreA:public MultiCore
{
public:
void show()
{
cout<<"multi core A"<<endl;
}
};
class MultiCoreB:public MultiCore
{
public:
void show()
{
cout<<"multi core B"<<endl;
}
};
class Factory
{
public:
virtual SingleCore* createSingleCore()=0;
virtual MultiCore* createMultiCore()=0;
};
class FactoryA:public Factory
{
SingleCore *createSingleCore()
{
return new SingleCoreA;
}
MultiCore *createMultiCore()
{
return new MultiCoreA;
}
};
class FactoryB:public Factory
{
SingleCore *createSingleCore()
{
return new SingleCoreB;
}
MultiCore *createMultiCore()
{
return new MultiCoreB;
}
};