《工厂方法模式.docx》由会员分享,可在线阅读,更多相关《工厂方法模式.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、相关介绍L工厂方法模式定义一个用于创立对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。2、UML 图定义T厂方法所创立的对蒙的接口定义T厂方法所创立的对蒙的接口具体的产丛,实现了Pmduci接口启明工厂方法.该方法返回一个Product类型的重定义工厂方法以返回一个CbncroteProduct实例3、所属类别:创立型二、C+代码/工厂方法模式.cpp :定义控制台应用程序的入口点。/#include stdafx. h#include using namespace std;抽象产品class fruit public:fruit ();virtual fru
2、it();由于此类是抽象类,没有价格,所以只能将价格显示定义为纯虚函数 virtual void show price ()=0;:fruit:fruit ()()fruit:fruit ()()具体产品1class apple :public fruitpublic :apple ();virtual apple。;virtual void show priceO ;:apple:apple ()(coutz,i am an apple,zendl;)apple:apple()()void apple:show price()cout,my price is 5endl;具体产品2class
3、 orange :public fruit(public :orange ();virtual orange。;virtual void show price ();:orange: : orange ()coutz,i am an orange,zendl;)orange:“orange ()void orange:show price ()(cout/zmy price is 6endl;)工厂抽象类输入要创立实例的编号,创立对应实例,1: apple, 2: orange class fruit_factorypublic:fruit factory () fruit factory (
4、) virtual fruit *creat fruit()=0;);/apple工厂类class apple factory:public fruit factory(public:apple_factory () apple factory () )virtual fruit * creat fruit()(return new apple;:/orange 工厂类class orangefactory:public fruitfactory public:orange factory () orange_factory () virtual fruit * creat_fruit()(return new orange;int _tmain(int argc, TCHAR* argv)(orange factory chengzi f;fruit *chengzi;chengzi=chengzi f. creat fruit ();(*chengzi). show price();return 0;