Python中结构型组合模式的示例分析
这篇文章将为大家详细讲解有关Python中结构型组合模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一、组合模式
组合,将多个对象组合成为一个树状结构,来表示业务逻辑上的层次。组合模式使得用户对单个对象和组合对象的使用具有一致性。
比如,描述一家公司的层次结构,那么我们用办公室来表示节点,则总经理办公司是根节点,下面分别由人事办公室、业务办公室、生产办公室、财务办公室,每个办公室下面可以还有跟小的办公室,每个办公室都有职责、人员数、人员薪资等属性;
优点:
二、应用场景
用于设计一个有层次等级的系统,并处理各层次之间的关系。
三、代码示例
实体角色:
抽象组件(Component
)
叶子组件(Leaf
)
复合组件(Composite
)
客户端(Client
)
classComponentBase:"""部门抽象出来的基类"""def__init__(self,name):slef.name=namedefadd(self,obj):passdefremove(self,obj):passdefdisplay(self,number):passclassNode(ComponentBase):def__init__(self,name,duty):self.name=nameself.duty=dutyself.children=[]defadd(self,obj):self.children.append(obj)defremove(self,obj):self.children.remove(obj)defdisplay(self,number=1):print("部门:{}级别:{}职责:{}".format(self.name,number,self.duty))n=number+1forobjinself.children:obj.display(n)if__name__=='__main__':root=Node("总经理办公室","总负责人")node1=Node("财务部门","公司财务管理")root.add(node1)node2=Node("业务部门","销售产品")root.add(node2)node3=Node("生产部门","生产产品")root.add(node3)node4=Node("销售事业一部门","A产品销售")node2.add(node4)node5=Node("销售事业二部门","B产品销售")node2.add(node5)root.display()
关于“Python中结构型组合模式的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。