Example #1
0
        /// <summary>
        /// Subject에 바인딩된 Listener를 해제합니다
        /// </summary>
        public static void UnbindListener <T>(IListenerObserver <T> listener) where T : ListenerSubject
        {
            var subject = _subjects.First(sub => sub.GetType() == typeof(T));

            if (subject != null)
            {
                subject.Remove(listener);
            }
        }
Example #2
0
        /// <summary>
        /// Subject에 Listener를 바인딩합니다
        /// </summary>
        /// <exception cref="ArgumentException"></exception>
        public static void BindListener <T>(IListenerObserver <T> listener) where T : ListenerSubject
        {
            var subject = _subjects.First(sub => sub.GetType() == typeof(T));

            if (subject != null)
            {
                subject.Add(listener);
            }
            else
            {
                throw new ArgumentException("Couldn't bind listener, because subject is not added");
            }
        }
Example #3
0
 /// <summary>
 /// Listener를 제거합니다.
 /// </summary>
 public virtual void Remove(IListenerObserver <ListenerSubject> sender)
 {
     _listeners.Remove(sender);
 }
Example #4
0
 /// <summary>
 /// Listener를 추가합니다.
 /// </summary>
 public virtual void Add(IListenerObserver <ListenerSubject> sender)
 {
     _listeners.Add(sender);
 }