소스에서 발표자까지 항목 모음을 전달하는 솔루션이 있습니다. 소스가 업데이트되면 발표자에게 새로운 결과를 표시 할 수 있기를 원합니다.변경 알림 (이벤트 또는 대리자)에 가장 적합한 패턴
마음에 떠오르는 점은 ChangeNotification 클래스를 만들어 결과와 함께 전달하고 해당 클래스에서 발표자에게 알리도록하는 것입니다. 이제는 두 가지 방법으로 구현할 수 있습니다. ChangeNotification에는 발표자가 구독하는 이벤트가 있거나 발표자가 설정하는 위임자와 null이 아닌 경우 소스 호출이있을 수 있습니다.
이벤트 사용의 이점은 소비자가 알림에 반응 할 수 있고 이에 대한 사후 대응 확장을 할 수 있다는 것입니다. 단점은 적절한 가비지 수집을 위해 이벤트 가입/탈퇴를 관리해야한다는 것입니다. 대의원은 간단하지만 유연성이 떨어집니다.
이런 상황에서 가장 우아한 패턴은 무엇입니까? 내가 생각하지 못한 다른 방법이 있습니까?
INotifyPropertyChanged를 구현하면 IBindingList 또는 ObservableCollection에 포함될 때 클래스가 많은 WindowsForms 또는 WPF 컨트롤에 데이터 바인딩 할 준비가됩니다.대리인은 추가 작업없이이 기능을 사용하지 않습니다. – cordialgerm
답변을 주셔서 감사합니다. 이러한 컬렉션은 주로 wpf/windows 양식으로 작업하는 경우 유용합니다. – Homde
그들은 "관찰자"디자인 패턴의 특정 구현입니다 ... 그리고 Winforms 및 WPF에 바인딩하는 컨트롤에 대한 무료 업데이트를 얻는 동안, 그들은 여전히 매우 유용합니다. UI가 아닌 상황. – tbischel