设计模式-观察者模式(c)
当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时会大哭一场。
类图
#包括牡蛎
#包括
#includelist
使用命名空间标准;
观察者类{
public :虚拟空钱up()=0;
virtual void money DoWn()=0;//必须纯虚函数
};
类别GuMin:public公共观察者{
私人:字符串名称;
公开号:顾敏(字符串n){ 0
//TODO自动生成的构造函数存根
名称=n;
}
清空资金(){ 0
//TODO自动生成的方法存根
' coutname '买了一些股票(股票升了)" endl
}
void money DoWn(){ 0
//TODO自动生成的方法存根
' coutname '股票降价了,哭了恩德尔
}
};
课程主题{
受保护的: ListObserver * olist
公众号:
主题(){ 0
//TODO自动生成的构造函数存根
}
无效添加(观察者* o){ 0
奥利斯特。push _ back(o);
}
无效删除(观察者* o){ 0
奥利斯特。移除(o);
}
虚拟空间用完(双a){ };
虚拟无效(双a){ };
};
班级古票:公共科目{
公众号:
谷朴(){ 0
}
清空(双a)
if(a 0.05){ 0
//ListObjector * :迭代器p=olist。begin();
for(ListObjector * : const _ iterator p=olist。begin();p!=olist。cend();p){ 0
(* p)-moneyUp();
//(*)p .钱涨了();
}
}
}
作废(双a)
if(a 0.05){ 0
listObjector * :迭代器p=olist。begin();
for(;p!=olist。end();p){ 0
(* p)-money DoWn();
}
}
}
};
int main(){ 0
//TODO自动生成的构造函数存根
主题*f=新古朴();
//主题
顾敏*g1=新顾敏('李峰股民');
顾敏*g2=新顾敏('王磊股民');
f-add(G1);
f-add(G2);
cout '股票升了恩德尔
f-up(0.1);
cout '比率小于0.05 ' endl
f-down(0.001);
cout '股票降了恩德尔
f-down(0.1);
cout '比率小于0.05 ' endl
f-down(0.001);
}
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/107440.html