🎨
Andy開發紀錄
  • 關於
    • 自介
  • 設計模式
    • 觀察者模型
    • 有限狀態機
    • 裝飾器模式
  • 其他
    • Scrum敏捷式開發
    • SOLID設計
    • TDD驅動測試開發
    • Event Driven Architecture
    • CQRS命令查詢職責分離
    • Concurrent並行相關
      • Single Thread Execution
      • 共用元件設計
        • CountDownLatchWorkPool
        • IForkWorkService
      • Pattern
        • THREAD-PER-MESSAGE
        • PRODUCER CONSUMER
        • SINGLE THREAD
        • Guarded Suspension 守衛模式
      • IQueue
        • ListQueue
        • BlockQueue
        • OrderBlockQueue
  • 元件設計
    • Sql Help
      • SQL Help Generate
      • StringBuilderGenerator
      • SQL Generate
    • excel工具
    • BDD行為驅動開發
    • 多工設計
      • 多工自動調整Thread數量
    • 常用Design Patten實作
    • Telegram Bot元件
    • 代碼元件
    • HCP API元件
    • 文字解析元件
    • MockitObject
    • 資料驗證元件
    • Zip壓縮工具
    • Sql Code Generate
  • 讀書心得
    • Clean code第一章
  • side project
    • 後端服務
  • IDEA
    • IDEA 外掛推薦
    • IDEA 外掛開發
Powered by GitBook
On this page

Was this helpful?

  1. 設計模式

觀察者模型

可即時得知被觀察者資料異動通知,也是共用元件常用模型之一

需求題目

當學生需隨時得老師資訊,且可以隨時加入監控老師或取消監控老師行為,老師行為為「點名」,學生收到通知,將可立即回覆。

  • 老師:被觀察者,當特定行為學生可即時通知

  • 學生:觀察者:可同步收到被觀察者異動訊息,並可得知被觀察者狀態

/**
 * 被觀察者
 */
public interface IObservable<T> {
    /**
     * 取得資料
     * @return
     */
    T getData();


    /**
     * 加入
     * @param observer
     */
    void add(IObserver<T>observer);

    /**
     * 移除觀察者
     * @param observer
     */
    void remove(IObserver<T>observer);

    /**
     * 通知所有觀察者
     */
    void notifyObservers();
}


/**
 * 觀察者
 * @param <T>
 */
public interface IObserver<T> {

    /**
     * 更新
     * @param IObservable
     */
    void update(IObservable<T> IObservable);
}


Previous自介Next有限狀態機

Last updated 2 years ago

Was this helpful?