📄 condition.cpp
字号:
/* *观察者模式
*/
#include <iostream>
#include <vector>
using namespace std;
class obviour
{
public:
virtual void update(const int a,const int b)=0;
//virtual void display()=0;
};
class condition_a:public obviour
{
private:
int data_a;
public:
void update(const int a,const int b)
{
data_a=a;
}
void display()
{
cout << data_a<<endl;
}
};
class sum:public obviour
{
private:
int data_a;
int data_b;
public:
void update(const int a,const int b)
{
data_a=a;data_b=b;
}
void display()
{
cout << data_a+data_b<< endl;
}
};
class dataCenter
{
private:
vector<obviour*> obviours; //指针list
int data_a;
int data_b;
public:
void regist (obviour* ob)
{
obviours.push_back(ob);
update(); //注册既更新
}
void setData(const int a,const int b)
{
data_a=a;data_b=b;
update();
}
void update()
{
unsigned int i;
for(i=0;i<obviours.size();i++)
{
obviours[i]->update(data_a,data_b);
}
}
dataCenter(int a,int b)
{
data_a=a;data_b=b;
}
};
void condition_main()
{
dataCenter data(1,5);
//obviour *ca=new condition_a;
//obviour *ab=new sum;
condition_a ca;
sum ab;
data.regist(&ca);
data.regist(&ab);
ca.display();
ab.display();
data.setData(2,1);
ca.display();
ab.display();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -