示例#1
0
        protected virtual void Notify(IObservalble obj)
        {
            foreach (IObserver observer in container)
            {
                observer.Update(obj);

            }
        }
示例#2
0
        public void Update(IObservalble obj)
        {
            // 这里存在一个向下转换(由继承体系中高级别的类向低级别的类转换)。
            Heater heater = (Heater)obj;

            // 打印产地和型号,只打印一次
            if (!isDisplayedType)
            {
                Console.WriteLine("{0} - {1}: ", heater.Area, heater.Type);
                Console.WriteLine();
                isDisplayedType = true;
            }

            if (heater.Temperature < 100)
            {     // 通过热水器引用heater获取温度
                Console.WriteLine(
                   String.Format("Alarm".PadRight(7) + ":水快烧开了,当前温度:{0}。", heater.Temperature));
            }
            else
            {
                Console.WriteLine(
                   String.Format("Alarm".PadRight(7) + ":水已经烧开了!!"));
            }
        }