10软工-设计模式.doc
上传人:qw****27 上传时间:2024-09-11 格式:DOC 页数:17 大小:212KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

10软工-设计模式.doc

10软工-设计模式.doc

预览

免费试读已结束,剩余 7 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第页院系:计算机科学学院专业:软件工程年级:2010课程名称:设计模式指导教师:艾勇组号:学号:0906508409065109姓名:赵晓宇崔伟峰2013年10月25日年级2010专业软件工程班级01实验名称设计模式程序设计实验分项内容分项内容1、实验一创建型模式(Factory模式与AbstractFactory模式)2、实验二结构型模式(Adapter模式)3、实验三行为型模式(Observer模式)4、5、6、小组成员姓名学号组内分工自我评分教师评分赵晓宇09065084实验一实验三5崔伟峰090651095实验二实验三5小组成绩评定教师签名:年月日实验分项1实验一创建型模式(Factory模式与AbstractFactory模式)实验目的掌握Factory模式与AbstractFactory模式的意图及其代码实现。了解两种模式的区别。实验要求具体题目用C++或Java语言实现Factory模式与AbstractFactory模式。系统平台VC6.0或以上版本环境下均可实验原理及步骤Factory.h#ifndefFACTORY_H#defineFACTORY_H//ProductclassProduct{public:Product(){}virtual~Product(){}};//继承自Product的ConcreateProduct子类classConcreateProduct:publicProduct{public:ConcreateProduct();virtual~ConcreateProduct();};//CreatorclassCreator{public:Creator(){}virtual~Creator(){}voidAnOperation();protected:virtualProduct*FactoryMethod()=0;};//继承自Creator的ConcreateCreator子类classConcreateCreator:publicCreator{public:ConcreateCreator();virtual~ConcreateCreator();protected:virtualProduct*FactoryMethod();};#endif*******************************************Factory.cpp#include"Factory.h"#include<iostream>usingnamespacestd;ConcreateProduct::ConcreateProduct(){std::cout<<"constructionofConcreateProduct\n";}//创建ConcteateProductConcreateProduct::~ConcreateProduct(){std::cout<<"destructionofConcreateProduct\n";}//销毁ConcteateProductvoidCreator::AnOperation(){Product*p=FactoryMethod();std::cout<<"anoperationofproduct\n";}ConcreateCreator::ConcreateCreator(){std::cout<<"constructionofConcreateCreator\n";}ConcreateCreator::~ConcreateCreator(){std::cout<<"destructionofConcreateCreator\n";}Product*ConcreateCreator::FactoryMethod(){returnnewConcreateProduct();}*************************************Main.cpp#include"Factory.h"#include<stdlib.h>intmain(intargc,char*argv[]){Creator*p=newConcreateCreator();p->AnOperation();deletep;system("pause");return0;}