营销型网站的好处,兰州市科协网站,本溪网站建设兼职,什么是互联网销售目录
C设计模式-工厂模式#xff08;Factory Method#xff09;
一、意图
二、适用性
三、结构
四、参与者
五、代码 C设计模式-工厂模式#xff08;Factory Method#xff09;
一、意图
定义一个用于创建对象的接口#xff0c;让子类决定实例化哪一个类。Factory…目录
C设计模式-工厂模式Factory Method
一、意图
二、适用性
三、结构
四、参与者
五、代码 C设计模式-工厂模式Factory Method
一、意图
定义一个用于创建对象的接口让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。 二、适用性
当一个类不知道它所必须创建的对象的类的时候。当一个类希望由它的子类来指定它所创建的对象的时候。当类将创建对象的职责委托给多个帮助子类中的某一个并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。 三、结构 四、参与者
Product 定义工厂方法所创建的对象的接口。
ConcreteProduct 实现Product接口。
Creator 声明工厂发法该方法返回一个Product类型的对象。Creator也可以定义一个工厂方法的缺省实现它返回一个缺省的ConcreteProduct对象。 可以调用工厂方法以创建一个Product对象。
ConcreteCreator 重定义工厂方法以返回一个ConcreteProduct实例。
五、代码
#includeiostream
using namespace std;class Product {
public:virtual void ShowInformation() 0;
};class Product_A : public Product {
public:void ShowInformation() {cout Product_A Information endl;}
};class Product_B : public Product {
public:void ShowInformation() {cout Product_B Information endl;}
};class Factory {
public:virtual Product* CreateProduct() 0;
};class Factory_A : public Factory {
public:Product* CreateProduct() {return new Product_A();}
};class Factory_B : public Factory {
public:Product* CreateProduct() {return new Product_B();}
};int main() {Factory* FactoryA new Factory_A();Product* ProductA FactoryA-CreateProduct();ProductA-ShowInformation();Factory* FactoryB new Factory_B();Product* ProductB FactoryB-CreateProduct();ProductB-ShowInformation();return 0;
}