设计模式.观察者模式(Observer)

设计模式.观察者模式(Observer)

ID:39683877

大小:2.31 MB

页数:32页

时间:2019-07-09

设计模式.观察者模式(Observer)_第1页
设计模式.观察者模式(Observer)_第2页
设计模式.观察者模式(Observer)_第3页
设计模式.观察者模式(Observer)_第4页
设计模式.观察者模式(Observer)_第5页
资源描述:

《设计模式.观察者模式(Observer)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、设计模式(DesignPattern)张凯副教授计算机学院软件工程系问题(Problem)晕,老板回来了,我不知道股市特别火,同事在上班期间偷偷看股票行情如果老板出门回来,公司前台MM电话事先通知可是…..老板今天刚一回来,让前台MM去打印资料了同事背对着大门大喊了一声“耶!我的股票涨停啦!”程序模拟发生的事情问题(Problem)classSecretary//前台秘书类{//同事列表privateIListobservers=newList();privat

2、estringaction;//增加publicvoidAttach(StockObserverobserver){observers.Add(observer);}//减少publicvoidDetach(StockObserverobserver){observers.Remove(observer);}//通知publicvoidNotify(){foreach(StockObserveroinobservers)o.Update();}//前台状态publicstringSecretaryAction{get{r

3、eturnaction;}set{action=value;}}}问题(Problem)//看股票的同事classStockObserver{privatestringname;privateSecretarysub;publicStockObserver(stringname,Secretarysub){this.name=name;this.sub=sub;}publicvoidUpdate(){Console.WriteLine("{0}{1}关闭股票行情,继续工作!",sub.SecretaryAction,na

4、me);}}问题(Problem)staticvoidMain(string[]args){//前台秘书MMSecretaryMM=newSecretary();//看股票的同事StockObservertongshi1=newStockObserver("魏关姹",MM);StockObservertongshi2=newStockObserver("易管查",MM);//前台记下了两位同事MM.Attach(tongshi1);MM.Attach(tongshi2);//发现老板回来MM.SecretaryActio

5、n="老板回来了!";//通知两个同事MM.Notify();Console.Read();}如果有人聊QQ,有人看NBA都需要通知,如何修改?思考:违背了那些原则?问题(Problem)//抽象观察者abstractclassObserver{protectedstringname;protectedSecretarysub;publicObserver(stringname,Secretarysub){this.name=name;this.sub=sub;}publicabstractvoidUpdate();}问

6、题(Problem)//看股票的同事classStockObserver:Observer{publicStockObserver(stringname,Secretarysub):base(name,sub){}publicoverridevoidUpdate(){Console.WriteLine("{0}{1}关闭股票行情,继续工作!",sub.SecretaryAction,name);}}//看NBA的同事classNBAObserver:Observer{publicNBAObserver(stringnam

7、e,Secretarysub):base(name,sub){}publicoverridevoidUpdate(){Console.WriteLine("{0}{1}关闭NBA直播,继续工作!",sub.SecretaryAction,name);}}问题(Problem)classSecretary//前台秘书类{//同事列表privateIListobservers=newList();privatestringaction;//增加publicvoidAttach(Obse

8、rverobserver){observers.Add(observer);}//减少publicvoidDetach(Observerobserver){observers.Remove(observer);}//通知publicvoidNotify(){foreach(Observeroinobservers)o

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

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

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