本文實(shí)例講述了Python設(shè)計(jì)模式之享元模式原理與用法。分享給大家供大家參考,具體如下:
創(chuàng)新互聯(lián)專(zhuān)注于王益企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。王益網(wǎng)站建設(shè)公司,為王益等地區(qū)提供建站服務(wù)。全流程定制設(shè)計(jì),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)享元模式(Flyweight Pattern):運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象.
下面是一個(gè)享元模式的demo:
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大話設(shè)計(jì)模式 設(shè)計(jì)模式——享元模式 享元模式(Flyweight Pattern):運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象 對(duì)一個(gè)類(lèi)進(jìn)行的實(shí)例,只在第一次使用時(shí)建立,其他時(shí)候是用同一個(gè)實(shí)例,減少內(nèi)存的開(kāi)銷(xiāo) """ # 抽象網(wǎng)站類(lèi) class Website(object): def use(self): pass # 具體網(wǎng)站類(lèi) class ConcreteWebsite(Website): def __init__(self, name): self.name = name def use(self): print "網(wǎng)站分類(lèi)",self.name # 不共享的網(wǎng)站類(lèi) class UnshareConcreteWebsite(Website): def __init__(self, name): self.name = name def use(self): print "不共享網(wǎng)站分類(lèi)",self.name # 網(wǎng)站工廠 class WebsiteFactory(object): def __init__(self): self.hashtable = dict() # 獲取網(wǎng)站類(lèi) 如果存在直接返回,如果不存在建好之后返回 def get_website(self, key): if not key in self.hashtable: self.hashtable[key] = ConcreteWebsite(key) return self.hashtable[key] # 網(wǎng)站實(shí)例的個(gè)數(shù) def get_website_count(self): return len(self.hashtable.keys()) if __name__ == "__main__": factory = WebsiteFactory() f1 = factory.get_website("blog") f2 = factory.get_website("blog") f3 = factory.get_website("blog") f4 = factory.get_website("website") f5 = factory.get_website("website") f6 = factory.get_website("website") f7 = UnshareConcreteWebsite("test") f1.use() f2.use() f3.use() f4.use() f5.use() f6.use() f7.use()
文章題目:Python設(shè)計(jì)模式之享元模式原理與用法實(shí)例分析-創(chuàng)新互聯(lián)
本文來(lái)源:http://aaarwkj.com/article44/jsche.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、建站公司、網(wǎng)站收錄、靜態(tài)網(wǎng)站、域名注冊(cè)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)