设计模式之享元模式
Posted loveprogramme
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之享元模式相关的知识,希望对你有一定的参考价值。
from abc import ABCMeta, abstractmethod # 运用共享技术有效地支持大量细粒度对象的复用,类似于对象池模式,不过对象池是为了节省对象不断创建销毁的时间, # 享元模式是为了防止重复创建相似或相同的对象,导致内存泄漏 # 两个主要角色:享元对象、享元工厂 class Flyweight(metaclass=ABCMeta): """享元类""" @abstractmethod def operation(self, extrinsicState): pass class FlyweightImpl(Flyweight): """享元模式的具体实现类""" def __init__(self, color): self.__color = color def operation(self, extrinsicState): print("%s取得%s色颜料" %(extrinsicState, self.__color)) class FlyweightFactory: """享元工厂""" def __init__(self): self.__flyweights = {} def getFlyweight(self, key): pigment = self.__flyweights.get(key, FlyweightImpl(key)) return pigment def testFlywieght(): factory = FlyweightFactory() pigmentRed = factory.getFlyweight("红") pigmentRed.operation("梦之队") pigmentBlue = factory.getFlyweight("蓝") pigmentBlue.operation("梦之队") pigmentBlue1 = factory.getFlyweight("蓝") pigmentBlue1.operation("和平队") testFlywieght()
以上是关于设计模式之享元模式的主要内容,如果未能解决你的问题,请参考以下文章