摘要:
程序設計:貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。(C#語言)要求: 1.要有聯動性,老鼠和主人的行為是被動的。 2.考慮可擴展性,貓的叫聲可能引起其他聯動效應 大部分答案都是使用的事件编程,我这里换了一下思路,使用观察着模式,用接口也实现了,因为考虑到第二个要求,即猫大叫也可能直接导致主人惊醒,所以Man也继承了ICatCatcher接口源代码如下:using System; using System.Collections; namespace test { public interface ICatCatcher { void DoSth(); } public interface 阅读全文
摘要:
引言在 C#中的委托和事件 一文的后半部分,我向大家讲述了Observer(观察者)模式,并使用委托和事件实现了这个模式。实际上,不使用委托和事件,一样可以实现Observer模式。在本文中,我将使用GOF的经典方式,再次实现一遍Observer模式,同时将讲述在 C#中的委托和事件 一文中没有提及的推模式(Push)和拉模式(Pull)。设计思想概述在 C#中的委托和事件 一文后半部分中我已经较详细的讲述了Observer设计模式的思想,所以这里仅简单的提及一下。Observer设计模式中实际上只包含了两类对象,一个是Subject(主题),一个是Observer(观察者)。它们之间的角色是 阅读全文