Factory模式与AbstractFactory模式(设计模式)

Factory模式与AbstractFactory模式(设计模式)

ID:40296582

大小:162.00 KB

页数:10页

时间:2019-07-30

Factory模式与AbstractFactory模式(设计模式)_第1页
Factory模式与AbstractFactory模式(设计模式)_第2页
Factory模式与AbstractFactory模式(设计模式)_第3页
Factory模式与AbstractFactory模式(设计模式)_第4页
Factory模式与AbstractFactory模式(设计模式)_第5页
资源描述:

《Factory模式与AbstractFactory模式(设计模式)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、成绩:实验报告课程名称:设计模式实验项目:工厂方法及抽象工厂模式姓名:专业:计算机科学与技术班级:学号:计算机科学与技术学院实验教学中心年月日哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告实验项目名称:工厂方法及抽象工厂模式(2学时)一、实验目的1.掌握Factory模式与AbstractFactory模式的意图及其代码实现。2.了解两种模式的区别。二、实验内容用C++语言实现Factory模式与AbstractFactory模式。三、实验步骤1.理解Factory模式与AbstractFactory模式并构建它们的UML结构

2、图。2.列出它们的抽象基类和接口函数。3.用代码演示实现它们。4.比较Factory模式和AbstractFactory模式。四、实验结果哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告五、程序代码1)Factory.h#ifndefFACTORY_H#defineFACTORY_HclassProduct{public:Product(){}virtual~Product(){}};classConcreateProduct:publicProduct{public:ConcreateProduct();virtual~Con

3、createProduct();};classCreator{public:Creator(){}virtual~Creator(){}哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告voidAnOperation();protected:virtualProduct*FactoryMethod()=0;};classConcreateCreator:publicCreator{public:ConcreateCreator();virtual~ConcreateCreator();protected:virtualProduc

4、t*FactoryMethod();};#endif2)Factory.cpp#include"Factory.h"#includeusingnamespacestd;ConcreateProduct::ConcreateProduct(){std::cout<<"constructionofConcreateProduct";}ConcreateProduct::~ConcreateProduct(){std::cout<<"destructionofConcreateProduct";}voidCrea

5、tor::AnOperation(){Product*p=FactoryMethod();std::cout<<"anoperationofproduct";}ConcreateCreator::ConcreateCreator(){哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告std::cout<<"constructionofConcreateCreator";}ConcreateCreator::~ConcreateCreator(){std::cout<<"destructionofConcreateCreat

6、or";}Product*ConcreateCreator::FactoryMethod(){returnnewConcreateProduct();}3)Main.cpp(测试代码)#include"Factory.h"#includeintmain(intargc,char*argv[]){Creator*p=newConcreateCreator();p->AnOperation();deletep;system("pause");return0;}1)AbstractFactory.h#ifndefAB

7、STRACTFACTORY_H#defineABSTRACTFACTORY_H//抽象基类AbstractProductA,代表产品A的抽象classAbstractProductA{public:AbstractProductA(){}virtual~AbstractProductA(){};};//派生类ConcreateProductA1,继承自AbstractProductA,代表产品A的第一种实现classConcreateProductA1哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告:publicAbstract

8、ProductA{public:ConcreateProductA1();virtual~ConcreateProductA1();};//派生类ConcreateProductA2,继承自AbstractProduct

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。