namespace DemoObserver
{
public interface IAccountObservre
{
void Update(userAccount args);
}
public class Emailer : IAccountObservre
{
public void Update(UserAccountArgs args)
{
//....
string toAddress = args.ToAddress;
}
}
public class Mobile : IAccountObservre
{
public void Update(UserAccountArgs args)
{
//....
string mobileNumber = args.MobileNumber;
}
}
public abstract class Subject
{
ArrayList<IAccountObservre> observerList = new ArrayList<IAccountObservre>();
protected virtual void Notify(UserAccount args)
{
foreach (IAccountObservre observer in observerList)
{
observer.Update(args);
}
}
public void AddObserver(IAccountObservre observer)
{
observerList.Add(observer);
}
public void RemoveObserver(IAccountObservre observer)
{
observerList.Remove(observer);
}
}
public class BankAccount : Subject
{
public void Withdraw(int data)
{
//....
UserAccountArgs args = new UserAccountArgs();
//....
Notify(args);
}
}
}
{
public interface IAccountObservre
{
void Update(userAccount args);
}
public class Emailer : IAccountObservre
{
public void Update(UserAccountArgs args)
{
//....
string toAddress = args.ToAddress;
}
}
public class Mobile : IAccountObservre
{
public void Update(UserAccountArgs args)
{
//....
string mobileNumber = args.MobileNumber;
}
}
public abstract class Subject
{
ArrayList<IAccountObservre> observerList = new ArrayList<IAccountObservre>();
protected virtual void Notify(UserAccount args)
{
foreach (IAccountObservre observer in observerList)
{
observer.Update(args);
}
}
public void AddObserver(IAccountObservre observer)
{
observerList.Add(observer);
}
public void RemoveObserver(IAccountObservre observer)
{
observerList.Remove(observer);
}
}
public class BankAccount : Subject
{
public void Withdraw(int data)
{
//....
UserAccountArgs args = new UserAccountArgs();
//....
Notify(args);
}
}
}