享元-共享元素 ,這種設計模式其實在我們平時編碼中很常見 ,其核心思想就是沒對象就new 對象,有對象就從已有的緩存或者其他地方取,最常見的就是java當中的池技術,比如常量池、數據庫連接池、緩衝池等 這些都是典型的不用頻繁的New 對象,而是共享一個對象 那麼這種貌似和單例是不是有點像呢,大家是不是有點疑惑。。
其實小編覺得單例和享元 的應用場景不同 ,模型類似,但不是一個概念 。。。下面小編帶大家寫一個享元模式:
這裏以在森林中創建一個樹爲例。
首先我們定義一個樹結構。。。
在定義一個樹節點,有x,y 和tree組成。。。。
再定義一個工廠來創建樹 ,okay 我們來測試一下:
類似這樣就是一個簡單的享元模式,其核心思想在於以下這一段:
okay 平時我們用常量池是不是也是這樣的思想 定義一個final 類型,比如當你 str1=new String ("111"),創建一個111在常量池
下次你再str2=new String ("111") 就不會再重新new 了 直接從常量池中取這個111.。。。。。
okay 享元模式的分享就到這裏,,小編希望對你有所幫助。。。。