- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08计科1班18号罗会枫《设计模式》中期检查
华南农业大学珠江学院
《设计模式》课题中期检查
专 业:____计算机科学与技术_______
班 级:___08计算机科学与技术01___
学 号: __200830400118____________
姓 名:___罗会枫__________________
导 师:___张基温__________________
题 目:对观察者模式和代理模式的设计
完成日期:2011年6月8日
对观察者模式和代理模式的初步认识和实例初步设计,具体如下所示:
1.观察者模式
1.1实例分析
对于观察者模式,本人现在的构思是设计一个读者“订阅电视报纸”的实例,由于现对观察者模式的理解不够深入,所以对其进行简单的设计。
“订阅电视报纸”的意义就在于读者可以随意订阅不同报社的不同类的内容,管理员可以对内容进行更新操作,这个操作是在客户端进行的。其实就是一个MVC模式的体现。在本例中,设计的是一个推和拉的过程。所谓推就是具体主题将变化后的数据全部交给具体观察者。所谓拉就是具体主题不将变化后的书籍交给具体观察者,而是提供了获得这些数据的方法,具体观察者在得到通知后,可以调用具体主题提供的方法得到数据,但需要自己判断数据是否发生了变化。
1.2“订阅电视报纸”UML类图
图1-1 “订阅电视报纸”UML类图
1.3代码设计
#include string
#include iostream
#include vector
using namespace std;
class ClassifySubject;
//媒体
class MediaObserver
{
protected:
string name;
ClassifySubject* cz;
string content;
public:
MediaObserver(string nm,string ct,ClassifySubject* c)
{
name=nm;
cz=c;
content=ct;
}
virtual void Update()=0;
};
//具体的观察者
class Media:public MediaObserver
{
public:
Media(string nm,string ct,ClassifySubject* c):MediaObserver(nm,ct,c)
{
}
virtual void Update();
};
//抽象通知者
class ClassifySubject
{
public:
string action1;
vectorMediaObserver*observers;
virtual void Attach(MediaObserver* observer)=0;
virtual void Notify()=0;
};
//具体通知者 分类
class Classify:public ClassifySubject
{
public:
void Attach(MediaObserver* mo)
{
observers.push_back(mo);
}
void Notify()
{
vectorMediaObserver*::iterator p=observers.begin();
while(p!=observers.end())
{
(*p)-Update();
p++;
}
}
};
void Media::Update()
{
coutendl;
cout客户账号:name
\n订阅的是《cz-action1》报社的cz-action2分类
\n客户收到的内容是:contentendl;
}
int main()
{
string name;
string content;
string MD1;
string MD2;
cout罗会枫_观察者模式测试结果:endl;
cout管理员更新内容:;
cincontent;
cout请输入客户的账号:;
cinname;
cout请输入您想订购的报社:南方日报、广州日报、中国新闻出版报、中国图书商报、中华读书报等等报社endl;
coutMD1=;
cinMD1;
cout请输入您想订阅的种类:新闻、学习、图书、体育、车行、营养等等endl;
coutMD2=;
cinMD2;
ClassifySubject *p=new Classify();
MediaObserver *m=new Media(name,content,p);
p-Attach(m);
p-action1=MD1;
p-action2=MD2
您可能关注的文档
- 计算机网络B答案.doc
- 第八讲等比数列复习.doc
- 安徽农业大学2012考研卷.doc
- 定额发票管理办法-副本.doc
- 公元2012年农历壬辰年龙年.doc
- 7.5地理教案.doc
- 北区2011年总结2012年预算.ppt
- 八上语文第六单元复习导学案.doc
- QA过程 0509 .ppt
- 电厂锅炉运行试卷 二 .doc
- 中国工业互联网预测性维护(PdM)行业市场调研及投资战略规划建议报告.docx
- 2022-2027年中国推拉门行业市场运行现状及投资战略研究报告.docx
- 2025年中国硅酸钙吸音板行业市场发展监测及投资战略咨询报告.docx
- 中国厨饮净水器市场竞争态势及行业投资潜力预测报告.docx
- 2023-2029年中国精细陶瓷行业发展前景预测及投资规划建议报告.docx
- 2025年中国IP网络摄像头行业市场发展监测及投资潜力预测报告.docx
- 中国熨衣机行业市场深度研究及投资战略咨询报告.docx
- 2025年中国床尾凳行业市场全景评估及发展前景预测报告.docx
- 中国高压钠灯行业市场发展监测及投资前景展望报告.docx
- 中国株洲市集成电路行业运行态势及未来发展趋势预测报告.docx
最近下载
- 信号与系统(第三版)上下册郑君里课后习题答案详解.pdf
- 江西农业大学2021-2022学年第1学期《高等数学(上)》期末考试试卷(B卷)及标准答案.pdf
- 施工组织设计-江城水泥混凝土土.doc VIP
- 山西农业大学2021-2022学年第1学期《高等数学(上)》期末考试试卷(A卷)及标准答案.pdf
- 八年级上语文 《红星照耀中国》纪实作品人教PPT课件优质课比赛公开课获奖.ppt
- B2C电子商务信任实证研究的现状与思考.doc
- 有理数乘方练习题.doc VIP
- 经典电动力学-北京大学物理学院.PDF
- 幂的乘方与积的乘方-练习题(含答案) .doc VIP
- 政府采购非招标方式概述 .ppt VIP
文档评论(0)