設計模式之享元模式與門面(外觀)模式(結構型模式)

享元模式和門面模式都是結構型模式

  • 享元模式
所謂享元模式就是運行共享技術有效地支持大量細粒度對象的複用。系統使用少量對象,而且這些都比較相似,狀態變化小,可以實現對象的多次複用。

共享模式是支持大量細粒度對象的複用,所以享元模式要求能夠共享的對象必須是細粒度對象。

在瞭解享元模式之前我們先要了解兩個概念:內部狀態、外部狀態。

內部狀態:在享元對象內部不隨外界環境改變而改變的共享部分。

外部狀態:隨着環境的改變而改變,不能夠共享的狀態就是外部狀態。

由於享元模式區分了內部狀態和外部狀態,所以我們可以通過設置不同的外部狀態使得相同的對象可以具備一些不同的特性,而內部狀態設置爲相同部分。在我們的程序設計過程中,我們可能會需要大量的細粒度對象來表示對象,如果這些對象除了幾個參數不同外其他部分都相同,這個時候我們就可以利用享元模式來大大減少應用程序當中的對象。如何利用享元模式呢?這裏我們只需要將他們少部分的不同的部分當做參數移動到類實例的外部去,然後再方法調用的時候將他們傳遞過來就可以了。這裏也就說明了一點:內部狀態存儲於享元對象內部,而外部狀態則應該由客戶端來考慮。
  • 門面模式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章