設計模式之享元模式

2021-09-03 02:39:19 字數 770 閱讀 7933

享元模式主要用於減少建立物件的數量,以減少記憶體占用和提高效能。這種型別的設計模式屬於結構型模式,它提供了減少物件數量從而改善應用所需的物件結構的方式。

public

inte***ce

ticket

// 火車票

class

trainticket

implements

ticket

@override

public

void

showticketinfo

(string bunk)

}

public

class

ticketfactory

else

}}

public

class

test

輸出:

建立物件 ==

>北京-青島

購買從北京到青島的上鋪火車票,**:28

使用快取 ==

>北京-青島

購買從北京到青島的下鋪火車票,**:104

使用快取 ==

>北京-青島

購買從北京到青島的坐票火車票,**:148

享元模式實現比較簡單,但是它的作用中一些場景確實很重要。它可以大大減少應用程式意外的建立物件。降低程式的記憶體,增強其效能。但其提高了系統的複雜度。

設計模式之享元模式

1 享元模式運用共享技術有效地支援大量細粒度的物件。uml圖如下 2 思考 flyweight根據客戶需求返回已經生成好的物件,但一定要事先生成物件例項嗎?答 實際上是不一定需要的,完全可以初始化的時候什麼也不做,到需要的時候,再去判斷物件是否為null來決定是否例項化。3 思考 為什麼要有unsh...

設計模式之 享元模式

享元模式英文稱為 flyweight pattern 又譯為羽量級模式或者蠅量級模式。享元模式的定義為 採用乙個共享類來避免大量擁有相同內容的 小類 的開銷。這種開銷中最常見 直觀的影響就是增加了記憶體的損耗。享元模式以共享的方式高效的支援大量的細粒度物件,減少其帶來的開銷。在名字和定義中都體現出了...

設計模式之享元模式

享元模式運用共享技術有效地支援大量細粒度的物件。如果乙個應用程式使用了大量的物件,而大量的這些物件造成了很大的儲存開銷時應該考慮使用。物件的大多數狀態可以是外部狀態,如果刪除物件的外部狀態,那麼可以用相對較少的共享物件取代很多組物件,此時也可以考慮用享元模式。享元模式uml圖如下 如下 使用者 cl...