private void Awake() { ConcreteSubject1 subject = new ConcreteSubject1(); ConcreteObserver1 server1 = new ConcreteObserver1(subject); ConcreteObserver2 server2 = new ConcreteObserver2(subject); subject.SubjectState = "MonoBehaviour"; }
private void Start() { ConcreteSubject1 sub1 = new ConcreteSubject1(); ConcreteObserver1 ob1 = new ConcreteObserver1(sub1); sub1.RegisterObserver(ob1); sub1.SubjectState = "更新了一条消息"; }
// Use this for initialization void Start() { // WeatherStation ws = new WeatherStation(); // BillboardA a = new BillboardA(); // BillboardB b = new BillboardB(); // BillboardC c = new BillboardC(); // ws.Updatea(a,b,c); ConcreteSubject1 sub1 = new ConcreteSubject1(); ConcreteObserver1 ob1 = new ConcreteObserver1(sub1); sub1.RegisterObserver(ob1); sub1.SubjectState = "温度90"; }
static void Main(string[] args) { ConcreteSubject subj = new ConcreteSubject(); subj.Attach(new ConcreteObserver(subj)); subj.Attach(new ConcreteObserver(subj)); subj.State = "Some state"; subj.Notify(); ConcreteSubject1 subj1 = new ConcreteSubject1(); subj1.Attach(new ConcreteObserver2(subj1)); subj1.Attach(new ConcreteObserver2(subj1)); subj1.State = "Some state 1"; subj1.Notify(); }
void Start() { //WeatherStation mWeatherStation = new WeatherStation(); //BillboardA mBillboardA = new BillboardA(); //BillboardB mBillboardB = new BillboardB(); //BillboardC mBillboardC = new BillboardC(); //mWeatherStation.mBillboardHandler += mBillboardA.Show; //mWeatherStation.mBillboardHandler += mBillboardB.Show; //mWeatherStation.mBillboardHandler += mBillboardC.Show; //mWeatherStation.Update(); ConcreteSubject1 mConcreteSubject1 = new ConcreteSubject1(); ConcreteObserver1 mConcreteObserver1 = new ConcreteObserver1(mConcreteSubject1); mConcreteSubject1.RegisterObserver(mConcreteObserver1); mConcreteSubject1.subjectState = "状态改变"; }
private void Start() { //WeatherStation weather = new global::WeatherStation(); //BillBoardA a = new BillBoardA(); //BillBoardB b = new BillBoardB(); //BillBoardC c = new BillBoardC(); //weather.Update(a,b,c); ////不符合开闭原则 :对修改关闭,对扩展开放 ////当需求变更,我们需要扩展显示布告板D,E,F....我们就得必须修改 WeatherStation的Update() ConcreteSubject1 sub1 = new ConcreteSubject1(); sub1.RegisterObserver(new ConcreteObserver1(sub1)); sub1.RegisterObserver(new ConcreteObserver2(sub1)); sub1.subjectState = "温度 27,湿度 18,气候 多云"; sub1.subjectState = "温度 32,湿度 24,气候 晴天"; }
public ConcreteObserver1(ConcreteSubject1 sub) { mSub = sub; }
public ConcreteObserver2(ConcreteSubject1 sub2) { mSub2 = sub2; }
public ConcreteObserver1(ConcreteSubject1 sub1) { mSub1 = sub1; }
public ConcreteObserver1(ConcreteSubject1 co) { mSub = co; }
public void Awake() { subject1 = new ConcreteSubject1(); }