西昌有哪些做网站的公司,广告策划书前言怎么写,室内设计联盟官网入口网页,成品短视频app下载有哪些组合#xff0c;将对象组合成树状结构#xff0c;来表示业务逻辑上的[部分-整体]层次#xff0c;这种组合使单个对象和组合对象的使用方法一样。 如描述一家公司的层次结构#xff0c;那么我们用办公室来表示节点#xff0c;则总经理办公司是根节点#xff0c;下面分别由… 组合将对象组合成树状结构来表示业务逻辑上的[部分-整体]层次这种组合使单个对象和组合对象的使用方法一样。 如描述一家公司的层次结构那么我们用办公室来表示节点则总经理办公司是根节点下面分别由人事办公室、业务办公室、生产办公室、财务办公室每个办公室下面可以还有跟小的办公室每个办公室都有职责、人员数、人员薪资等属性 上面描述是逻辑上的描述用程序如何来实现看下面代码 class ComponentBases:部门抽象出来的基类def __init__(self, name):slef.name namedef add(self, obj):passdef remove(self, obj):passdef display(self, number):passclass Node(ComponentBases):def __init__(self, name, duty):self.name nameself.duty dutyself.children []def add(self, obj):self.children.append(obj)def remove(self, obj):self.children.remove(obj)def display(self, number1):print(部门{} 级别{} 职责{}.format(self.name, number, self.duty))n number1for obj in self.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()
----------输出-----------
部门总经理办公室 级别1 职责总负责人
部门财务部门 级别2 职责公司财务管理
部门业务部门 级别2 职责销售产品
部门销售事业一部门 级别3 职责A产品销售
部门销售事业二部门 级别3 职责B产品销售
部门生产部门 级别2 职责生产产品 组合模式将对象组合成树形结构以表示“部分-整体”的层次结构组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 组合对象 的含义。 ------------------------------