PPT_python_享元模式
PPT_python_享元模式
1、适用场景
渲染很多属性相同的对象时,耗费很多系统资源,所以核心点是将相同属性和特征属性分离开来,建立类。
#-*- coding:utf-8 -*-
#! /usr/bin/env python
treetype = ["apple_tree","perry_tree","perry_tree","perry_tree"]
class Tree(object):
Tdict = {}
def render(self,x,y):
print "the tree is {},{},{}".format(self.tree_type,x,y)
def __new__(cls,tree_type):
t = cls.Tdict.get(tree_type,None)
if t:
pass
else:
t = object.__new__(cls)
cls.Tdict[tree_type] = t
t.tree_type = tree_type
return t
# for i in range(len(treetype)):
# t = Tree(treetype[i])
t0 = Tree(treetype[0])
t0.render(1,2)
t1 = Tree(treetype[1])
t2 = Tree(treetype[2])
t1.render(10,10)
t2.render(29,29)
print id(t0)
print id(t1)
print id(t2)
浙公网安备 33010602011771号