Observer Pattern
ref: https://www.dotblogs.com.tw/joysdw12/2013/03/13/96531
Observer pattern is using in event notification.
For example, some peoples register paper from daily supplier. Then, the daily supplier must to send paper to people.
In code view, the Daily supplier
must have these functions likes register()
, removeRegister()
, sendPaper()
, the code like
public interface IDailySupplier
{
void register(IObserver pObserver);
void removeRegister(IObserver pObserver);
void sendPaper(string paper);
}
the people
must implement one interface, the code like
public interface IPeopleObserver
{
void receive(string paper);
}
Then the DailySuppiler
implement IDailySupplier
interface
public class DailySuppiler : IDailySupplier
{
List <IPeopleObserver> lstObservers; //
public NewspaperOffice()
{
lstObservers = new List(IPeopleObserver);
}
public void RegisterObserver(IPeopleObserver pObserver)
{
lstObservers.Add(pObserver);
}
public void RemoveObserver(IPeopleObserver pObserver)
{
if (lstObservers.IndexOf(pObserver) >= 0)
lstObservers.Remove(pObserver);
}
public void SendNewspaper(string paper)
{
foreach (IPeopleObserver observer in lstObservers)
{
observer.receive(paper);
}
}
}
``````