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)

  

posted on 2019-09-02 13:33  lexn  阅读(11)  评论(0)    收藏  举报

导航