摘要:享元模式一享元模式定義運用共享技術有效的支持大量細粒度的對象二具體實現創建對象接口創建具體對象創建工廠調用輸出三優缺點優點減少對象的創建,節省內存缺點提升了系統的復雜性四源碼
享元模式
一. 享元模式 1.1 定義運用共享技術有效的支持大量細粒度的對象.
二. 具體實現 2.1 創建對象接口public interface IFlyweight { void print(); }2.2 創建具體對象
public class Flyweight implements IFlyweight { private String id; public Flyweight(String id){ this.id = id; } @Override public void print() { System.out.println("Flyweight.id = " + getId() + " ..."); } public String getId() { return id; } }2.3 創建工廠
public class FlyweightFactory { private Map2.4 調用flyweightMap = new HashMap(); public IFlyweight getFlyweight(String str){ IFlyweight flyweight = flyweightMap.get(str); if(flyweight == null){ flyweight = new Flyweight(str); flyweightMap.put(str, flyweight); } return flyweight; } public int getFlyweightMapSize(){ return flyweightMap.size(); } }
public static void main(String[] args) { FlyweightFactory flyweightFactory = new FlyweightFactory(); IFlyweight flyweight1 = flyweightFactory.getFlyweight("A"); IFlyweight flyweight2 = flyweightFactory.getFlyweight("B"); IFlyweight flyweight3 = flyweightFactory.getFlyweight("A"); flyweight1.print(); flyweight2.print(); flyweight3.print(); System.out.println(flyweightFactory.getFlyweightMapSize()); }2.5 輸出
Flyweight.id = A ... Flyweight.id = B ... Flyweight.id = A ... 2三. 優缺點 3.1 優點
減少對象的創建,節省內存.
3.2 缺點提升了系統的復雜性.
四. 源碼https://github.com/Seasons20/DisignPattern.git
END
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69534.html
摘要:享元模式屬于結構型模式的一種,又稱輕量級模式,通過共享技術有效地實現了大量細粒度對象的復用概述兩種結構狀態內部狀態享元對象內部不隨外界環境改變而改變的共享部分。 享元模式(Flyweight Pattern)屬于結構型模式的一種,又稱輕量級模式,通過共享技術有效地實現了大量細粒度對象的復用... 概述 兩種結構狀態 內部狀態:享元對象內部不隨外界環境改變而改變的共享部分。 外部狀態...
摘要:享元模式運用共享技術來有效地支持大量細粒度對象的復用,以減少創建的對象的數量。意為蒼蠅,指輕蠅量級,指代對象粒度很小。如果考生人數少,就分別少準備幾個自動檔和手動檔的駕考車,考生多的話就多準備幾輛。我們去考四六級的時候為什么這么多考試 showImg(https://segmentfault.com/img/remote/1460000020135777); 享元模式 (Flyweig...
摘要:類的適配器結構目標角色這就是所期待得到的接口,由于是類適配器模式,因此目標不可以是類。這種類型的設計模式屬于結構型模式,它是作為現有的類的一個包裝。和適配器模式的關系適配器模式的用意是改變所考慮對象的接口,而代理模式不能改變。 點擊進入我的博客 3.1 適配器模式 適配器模式把一個類的接口變換成客戶端所期待的另一種接口,使得原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。 3...
摘要:享元模式會復用那些內存中已經存在且與請求對象相似的對象,而不是去創建新的對象,那些已經存在的對象會以某種方式存儲,如果沒有發現與請求匹配的對象時將會創建新的對象。 原文鏈接譯者:smallclover希望對你有所幫助,謝謝! 設計模式-享元模式 享元模式主要用來減少對象的數量(復用我們內存中已存在的對象,減少在系統創建對象實例),以此來減少對內存資源的占用,從而提高系統的性能。這種類型...
閱讀 2225·2021-11-22 15:29
閱讀 4106·2021-11-04 16:13
閱讀 995·2019-08-29 16:58
閱讀 343·2019-08-29 16:08
閱讀 1463·2019-08-23 17:56
閱讀 2386·2019-08-23 17:06
閱讀 3169·2019-08-23 16:55
閱讀 2063·2019-08-23 16:22