Python中结构型组合模式的示例分析
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,这篇文章将为大家详细讲解有关Python中结构型组合模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、组合模式组合,将多个对象组合成为一个树状结构,来
千家信息网最后更新 2024年11月11日Python中结构型组合模式的示例分析
这篇文章将为大家详细讲解有关Python中结构型组合模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一、组合模式
组合,将多个对象组合成为一个树状结构,来表示业务逻辑上的层次。组合模式使得用户对单个对象和组合对象的使用具有一致性。
比如,描述一家公司的层次结构,那么我们用办公室来表示节点,则总经理办公司是根节点,下面分别由人事办公室、业务办公室、生产办公室、财务办公室,每个办公室下面可以还有跟小的办公室,每个办公室都有职责、人员数、人员薪资等属性;
优点:
定义了包含基本对象和组合对象的类层次结构。
简化
Client
代码,即Client
可以一致地使用组合对象和单个对象。更容易增加新类型的组件。
二、应用场景
用于设计一个有层次等级的系统,并处理各层次之间的关系。
三、代码示例
实体角色:
抽象组件(
Component
)叶子组件(
Leaf
)复合组件(
Composite
)客户端(
Client
)
class ComponentBase: """部门抽象出来的基类""" def __init__(self, name): slef.name = name def add(self, obj): pass def remove(self, obj): pass def display(self, number): passclass Node(ComponentBase): def __init__(self, name, duty): self.name = name self.duty = duty self.children = [] def add(self, obj): self.children.append(obj) def remove(self, obj): self.children.remove(obj) def display(self, number=1): print("部门:{} 级别:{} 职责:{}".format(self.name, number, self.duty)) n = number+1 for 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()
关于"Python中结构型组合模式的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
组合
办公室
办公
对象
部门
结构
层次
销售
模式
产品
组件
示例
业务
公司
篇文章
财务
生产
结构型
分析
一致
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
国产数据库代码来源
net软件开发培训学费多少
服务器的光纤口
北京字跳网络技术有限公司靠谱吗
网络安全作文100
淘宝网络技术有限公司
asp软件开发asp 网游
网络安全媒介渗透教案
java 连接多个数据库
ucs网络技术
2019城关公安分局网络安全
60台电脑服务器多大硬盘合适
新华社网络安全和信息化
向数据库中添加数据 vb
网络安全测试师简历
隋唐网络技术
拨打电话链接不到服务器
数据库视图在哪里打开
土地监管 大数据库
金税盘安全服务器地址
软件开发项目经理需要做哪些
下载视频号服务器
青岛网络技术公司
网络安全密钥如何查询
三级考网络技术二级考什么
广州必火网络安全
中海达gps管理软件服务器
打开数据库连接时候出错
数据库求fmin码
浙江党员党性体检软件开发