赞
踩
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使类的实例化延迟到子类。
定义一个用于创建对象的接口:在虚工厂基类提供一个接口,用于创建产品接口;
让子类决定实例化哪一个类:产品虚基类提供一个创建产品的接口,具体实例化要子类实现。
#include<iostream> #include <assert.h> using namespace std; //手机 class PHONE { public: virtual void ReadImei(){}//读取imei号 }; //高通芯片 class QUALCOMM : public PHONE { public: void ReadImei()//读取imei号 { cout<<"QUALCOMM::ReadImei()"<<endl; } }; //MTK芯片 class MTK : public PHONE { public: void ReadImei()//读取imei号 { cout<<"MTK::ReadImei()"<<endl; } }; //展讯芯片 class SPREAD : public PHONE { public: void ReadImei()//读取imei号 { cout<<"SPREAD::ReadImei()"<<endl; } }; //抽象工厂 class WATCHFACTORY { public: virtual PHONE* CreatePhone(){return NULL;} }; //高通 class QUALCOMM_FAC: public WATCHFACTORY { PHONE* CreatePhone() { return new QUALCOMM(); } }; //MTK class MTK_FAC: public WATCHFACTORY { PHONE* CreatePhone() { return new MTK(); } }; //展讯 class SPREAD_FAC: public WATCHFACTORY { PHONE* CreatePhone() { return new SPREAD(); } }; int main() { //先实例化一个具体的工厂 WATCHFACTORY * m_fac = new QUALCOMM_FAC(); //工厂创建手机,不用管是那一种芯片的手机,看工厂就是高通的手机 PHONE *myphone_qualcomm = m_fac->CreatePhone(); assert(NULL !=myphone_qualcomm);//判断mywatch不为空 myphone_qualcomm->ReadImei(); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。