23种设计模式之python实现--Composite模式

来源:互联网 发布:软件测试知识点总结 编辑:程序博客网 时间:2024/05/02 03:05
#理解#具有层次结构,且使得部分和整体具有一致性#例子#一个经典的组合例子就是食品的分类#Componentclass food_Component(object):    def __init__(self):        self.food_object={}        self.i=0    def display_name(self):        pass    def Add(self,food):        pass    def remove(self,food):        pass    def getChild(self,pos):        pass#Compositeclass Vegetable_Composite(food_Component):    def __init__(self,name):        self.name=name        super(Vegetable_Composite,self).__init__()    def display_name(self):        print self.name    def Add(self,food):        self.food_object[self.i]=food        self.i=self.i+1    def remove(self,food):        self.food_object.remove(food)    def getChild(self,pos):        return self.food_object[pos]    #leafclass leaf(food_Component):    def __init__(self,name):        self.name=name        super(leaf,self).__init__()    def display_name(self):        print self.name#clientif __name__=="__main__":    cabbage=leaf('cabbage')    cabbage.display_name()    composite=Vegetable_Composite('vegetable')    green=Vegetable_Composite('green vegetable')    composite.Add(green)    green.Add(cabbage)    composite.display_name()    green.display_name()    component=composite.getChild(0)    component.display_name()    component1=component.getChild(0)    component1.display_name()    

运行如图:


0 0