欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

享元(Flyweight)模式

系統 2053 0

面向對象很好地解決了系統抽象性的問題,同時在大多數情況下,也不會損及系統的性能。但是,在某些特殊的應用中下,由于對象的數量太大,采用面向對象會給系統帶來難以承受的內存開銷。比如圖形應用中的圖元等對象、字處理應用中的字符對象等。
采用純粹對象方案的問題在于大量細粒度的對象會很快充斥在系統中,從而帶來很高的運行時代價——主要指內存需求方面的代價。如何在避免大量細粒度對象問題的同時,讓外部客戶程序仍然能夠透明地使用面向對象的方式來進行操作?
運用共享技術有效地支持大量細粒度的對象。

一,結構:

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

抽象享元(Flyweight)角色: 此角色是所有的具體享元類的超類,為這些類規定出需要實現的公共接口。那些需要外蘊狀態(External State)的操作可以通過調用商業方法以參數形式傳入。

具體享元(ConcreteFlyweight)角色: 實現抽象享元角色所規定的接口。如果有內蘊狀態的話,必須負責為內蘊狀態提供存儲空間。享元對象的內蘊狀態必須與對象所處的周圍環境無關,從而使得享元對象可以在系統內共享的。

享元工廠(FlyweightFactory)角色: 本角色負責創建和管理享元角色。本角色必須保證享元對象可以被系統適當地共享。當一個客戶端對象調用一個享元對象的時候,享元工廠角色會檢查系統中是否已經有一個復合要求的享元對象。如果已經有了,享元工廠角色就應當提供這個已有的享元對象;如果系統中沒有一個適當的享元對象的話,享元工廠角色就應當創建一個合適的享元對象。

客戶端(Client)角色: 本角色需要維護一個對所有享元對象的引用。本角色需要自行存儲所有享元對象的外蘊狀態。

二,示例代碼:

    import java.util.Hashtable;

/**
 * 享元工廠(FlyweightFactory)角色
 * @author Salmon
 *
 */
public class FlyweightFactory {
	private Hashtable flyweights = new Hashtable();

	public FlyweightFactory() {
		flyweights.put("X", new ConcreteFlyweight());
		flyweights.put("Y", new ConcreteFlyweight());
		flyweights.put("Z", new ConcreteFlyweight());
	}

	public Flyweight getFlyweight(String key) {
		return ((Flyweight) flyweights.get(key));
	}
}

/**
 * 抽象享元(Flyweight)角色
 * @author Salmon
 *
 */
public interface Flyweight {
	public void operation();
}

/**
 * 具體享元(ConcreteFlyweight)角色
 * @author Salmon
 *
 */
public class ConcreteFlyweight implements Flyweight {
	public void operation() {
		System.out.println("ok");
	}
}

/**
 * 客戶端(Client)角色
 * @author Salmon
 *
 */
public class Client {
	public static void main(String[] args) {
		FlyweightFactory f = new FlyweightFactory();
		Flyweight fx = f.getFlyweight("X");
		fx.operation();
		Flyweight fy = f.getFlyweight("Y");
		fy.operation();
		Flyweight fz = f.getFlyweight("Z");
		fz.operation();
	}
}
  

?

?

享元(Flyweight)模式


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: a视频在线播放 | 亚洲韩精品欧美一区二区三区 | 超91精品手机国产在线 | 亚洲精品欧美一区二区三区 | 999久久久精品视频在线观看 | 三级视频全过程 | 天天看高清特色大片 | 国产精品久久久久久久久久久久 | 97色伦网| 狠狠色狠狠色综合日日2019 | 黄片毛片在线观看 | 九九色网站 | 99热综合在线 | 久草视频在线资源站 | 嗯啊你轻点好深啊hh在线播放 | 一区二区三区四区在线播放 | 秋霞伊人 | 丁香婷婷网 | 欧美一a一片一级一片 | 日韩福利视频一区 | 国产苐1页影院草草影院 | 欧美一区二区三区四区不卡 | 一区二区三区四区精品 | 欧美在线国产 | 国产中文精品无码欧美综合小说 | 波多野结衣办公室33分jian情 | 亚洲国产成人久久综合碰 | 久久99国产精品视频 | 深夜网址你懂的 | 中文字幕一区二区三 | 国产91久久最新观看地址 | 亚洲免费人成在线视频观看 | 日本免费一区二区三区视频 | 欧美黄色片在线观看 | 高清在线不卡 | 火辣福利在线观看 | 色拍拍欧美视频在线看 | 国产偷国产偷在线高清 | 欧美三级成人理伦 | 99热久久这里只有精品99 | 色天天综合色天天碰 |