관찰소 모드
4668 단어 패턴
추상에 의존하여 가능한 한 확장하고 수정과 파괴가 아니다
public abstract class Subject
{
IList<IAccountObserver> observerList = new List<IAccountObserver>();
public void AddObserver( IAccountObserver observer )
{
observerList.Add( observer );
}
public void RemoveObserver( IAccountObserver observer )
{
observerList.Remove( observer );
}
public void Notify( UserAccountArgs args )
{
foreach( IAccountObserver observer in observerList )
{
observer.Update( args );
}
}
}
public class UserAccountArgs
{
public string PhoneNumber;
public string Email;
}
public class BankAccount : Subject
{
public void WithDraw( UserAccountArgs args )
{
Notify( args );
}
}
public interface IAccountObserver
{
void Update(UserAccountArgs args);
}
public class Mobile:IAccountObserver
{
public void Update( UserAccountArgs args )
{
}
}
public class Emailer:IAccountObserver
{
public void Update( UserAccountArgs args )
{
}
}
호출
static void Main( string[] args )
{
Subject subject = new BankAccount();
UserAccountArgs arg = new UserAccountArgs();
arg.Email = "";
arg.PhoneNumber = "";
IAccountObserver observer1 = new Emailer();
IAccountObserver observer2 = new Mobile();
subject.AddObserver( observer1 );
subject.AddObserver( observer2 );
subject.Notify( arg );
}
원칙을 위한 모드이지 모드를 위한 코드가 아니다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
나쁜 REGEX와 좋은 REGEX와 최상의 REGEX정규식(RegExp/regex)이란 문자열의 패턴을 표현하는 표기법 [2016-05-02T16:05:18 #92430] INFO -- : Served asset /navi/hu-0005-03/style.css - 3...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.