组合模式(python)
来源:互联网 发布:steam淘宝买游戏 编辑:程序博客网 时间:2024/06/05 05:05
"""组合模式组合对象成树形结构以表示部分-整体结构在使用单个对象和组合对象时具有一致性"""from abc import ABCMeta, abstractmethodclass Company(object): """ 公司抽象类 """ __metaclass__ = ABCMeta def __init__(self, name, duty): self.name = name self.zeren = duty pass @abstractmethod def append(self, company): pass @abstractmethod def remove(self, company): pass @abstractmethod def display(self, num): pass @abstractmethod def duty(self): passclass Department(Company): def __init__(self, name, duty): super(Department, self).__init__(name, duty) def append(self, company): print("我不能添加子部门") def remove(self, company): print("我没有子部门删除") def display(self, num): string = "" for i in range(num): string += "-" print(string + self.name) def duty(self): print(self.name + " " + self.zeren)class ChildCompany(Company): def __init__(self, name, duty): super(ChildCompany, self).__init__(name, duty) self.child_list = [] def append(self, company): self.child_list.append(company) def remove(self, company): self.child_list.remove(company) def display(self, num): string = "" for i in range(num): string += "-" print(string + self.name) for child in self.child_list: child.display(num + 2) def duty(self): print(self.name + " " + self.zeren) for child in self.child_list: child.duty()if __name__ == '__main__': root = ChildCompany("总公司", "管理整个公司") renli = Department("人力资源部", "管理总公司人力") caiwu = Department("财务部", "管理总公司财务") root.append(renli) root.append(caiwu) shanghai = ChildCompany("上海分公司", "上海事物") shanghai_renli = Department("上海人力资源部", "上海人力事务") shanghai.append(shanghai_renli) hangzhou = ChildCompany("杭州分公司", "杭州事务") hangzhou_caiwu = Department("杭州财务部", "杭州财务") hangzhou.append(hangzhou_caiwu) fujian = Department("福建分公司", "福建事务") fujian_xingzhen = Department("福建行政部", "福建行政") fujian.append(fujian_xingzhen) root.append(shanghai) root.append(hangzhou) root.append(fujian) root.display(1) print("") root.duty() print("") print("") root.remove(fujian) root.display(2) print("") root.duty()
1 0
- 组合模式(python)
- 组合模式(python)
- python设计模式(组合模式)
- 设计模式十二(组合模式,python语言实现)
- Python设计模式——组合模式
- python设计模式之组合模式
- Python设计模式(十八)【组合模式】
- 设计模式-组合模式-composite-python??
- python设计模式之组合模式
- 组合模式(Composite)
- 组合模式(Composite)
- 组合模式(2)
- Composite(组合模式)
- 组合(Composite)模式
- 组合模式(Composite)
- composite(组合)模式
- Composite(组合)模式
- 组合模式(Composite)
- ASP.Net: EshineASPNet教程-身份证校验与正则
- 【ARM-Linux开发】Rico Board DIY系列实验教程 Day 2——搭建Boa服务器
- C++ Sets & MultiSets
- android连接小票打印机,打印小票数据的两种模式
- HSV(HSB) - HSI(HSl)
- 组合模式(python)
- C++ Stacks(堆栈)
- 1.1 用两个栈实现一个队列
- 3种方式来永久和安全地删除Linux中的“文件和目录”
- vim快速入门
- C++ Queues(队列)、Priority Queues(优先队列)
- 【ARM-Linux开发】Rico Board上编译USB WiFi RT3070驱动
- Ubuntu Linux 环境变量PATH设置(转)
- 多渠道打包概览及签名的作用(普通方法)