Python中结构型组合模式的示例分析

Python中结构型组合模式的示例分析

这篇文章将为大家详细讲解有关Python中结构型组合模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、组合模式

组合,将多个对象组合成为一个树状结构,来表示业务逻辑上的层次。组合模式使得用户对单个对象和组合对象的使用具有一致性。

比如,描述一家公司的层次结构,那么我们用办公室来表示节点,则总经理办公司是根节点,下面分别由人事办公室、业务办公室、生产办公室、财务办公室,每个办公室下面可以还有跟小的办公室,每个办公室都有职责、人员数、人员薪资等属性;

优点:

  • 定义了包含基本对象和组合对象的类层次结构。

  • 简化 Client 代码,即 Client 可以一致地使用组合对象和单个对象。

  • 更容易增加新类型的组件。

二、应用场景

用于设计一个有层次等级的系统,并处理各层次之间的关系。

三、代码示例

实体角色:

  • 抽象组件(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中结构型组合模式的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

发布于 2022-02-15 20:41:18
收藏
分享
海报
0 条评论
41
上一篇:如何使用C++实现马踏棋盘 下一篇:dedecms和thinkphp有哪些区别
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码