設計模式應用場景
1 command
建立和執行事務:
實體上的解耦
時間上的解耦
undo方法
2 active object模式
該模式與command模式結合
實現多執行緒控制的一項古老的技術,為許多任務業系統提供了乙個簡單的多工核心。
3 template method 與 strategy
分離通用演算法和具體的上下文
在軟體設計中經常會看到這樣的需求。我們有乙個通用演算法。為了遵循依賴倒置原則,我們想確保這個通用演算法不要依賴於具體實現。我們想確保這個通用的演算法和具體實現都依賴於抽象。
template method 使用繼承
其中通用演算法被放置在基類中,並且通過繼承在不同的具體上下文中實現該通用演算法。
strategy 使用委託
通用演算法放置在具體類a中,應用b繼承於介面i,並把b傳給這個具體類a,a就可以把具體工作委託給這個介面去完成。
4 facade與mediator
把某種規約施加到另外一組物件上。
facade模式從上面施加規約,而mediator模式則從下面施加規約。對facade模式的使用時可見
且具有強制性的,而對mediator模式的使用則是隱藏且自用的。
單利模式應用場景
單例模式應用的場景一般發現在以下條件下 1 資源共享的情況下,避免由於資源操作時導致的效能或損耗等。如上述中的日誌檔案。2 控制資源的情況下,方便資源之間的互相通訊。如執行緒池等。python 1 python 的模組就是天然的單例模式,因為模組在第一次匯入時,會生成 pyc 檔案,當第二次匯入時,...
設計模式的應用場景 6 外觀模式
定義 為對外提供一組介面的子系統提供乙個統一的介面,使得其他系統對該系統的訪問都通過這個統一的介面來完成。優點 通過統一對外介面訪問系統,避免了外部系統和子系統之間的直接聯絡從而降低了系統間的依賴和複雜度。缺點 限制了外部系統對子系統的靈活呼叫。使用時機 當乙個複雜的系統需要對外提供介面時,就需要將...
HBase rowKey應用場景設計
需求 有一張資料表,其中包含手機號碼字段。1.查詢一段時間內固定號碼的所有資料 2.查詢一段時間內所有資料。分析 hbase要想查詢快速,只能從rowkey上下手,rowkey phonenum 時間 可以實現目標1,但是目標2很難實現,rowkey 時間 phonenum 可以實現目標2,但是目標...