电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

python3 簡單實現(xiàn)組合設(shè)計模式

瀏覽:2日期:2022-07-18 18:19:00

組合模式是把一個類別歸為一個整體,并且組織多個整體之間的關(guān)系,使用通過樹形結(jié)構(gòu)來描述所有整體。

一般的編寫方式為一個類別對象下添加多個該對象的元素,該對象又為其它對象下的元素。簡單來說就是一個學(xué)校有一個總部,總部下有有師資部、招生部;總部有分校,分校也有。

在我個人看來,設(shè)計模式的使用并不局限于書本描述的具體問題的解決,是需要豐富的業(yè)務(wù)經(jīng)驗才能更好的靈活應(yīng)用,本人能力有限,在此也是給出一個簡單的示例用來說明,額外的靈活運營需要看個人的編寫方式。

首先新建一個學(xué)校的基類:

#根class root: name = ’’ def __init__(self, name): self.name = name def add(self, root): pass

以上學(xué)校基類初始化方法為接收一個name,并且有一個抽象方法add。

有了一個學(xué)校基類后,具體新建一個學(xué)校類,繼承root基類:

#學(xué)校類class School(root): childrenroot = [] def add(self, root): self.childrenroot.append(root)

在以上學(xué)校類中,繼承了root基類,并且實現(xiàn)了add方法,接收root值,并且把它添加到 childrenroot 列表中,這樣可以網(wǎng)當(dāng)前對象下添加子節(jié)點,或者說添加下級對象。

新建一個招生辦類以及一個師資部類:

#招生辦class StudentAdmissionDept(root): def __init__(self, name): self.name = name#師資部class FacultyDepartment(root): def __init__(self, name): self.name = name

以上內(nèi)容很簡單,都是繼承于root,就一個初始化方法。

開始實現(xiàn)調(diào)用。首先新建一個學(xué)校總部對象,并且往這個總部對象下添加一個招生辦對象以及一個師資部對象:

root = School(’總部’)root.add(StudentAdmissionDept(’總部招生辦’))root.add(FacultyDepartment(’總部師資部’))

新建好總部對象后,往下添加分校區(qū)的對象。分校區(qū)的部門設(shè)置跟總校一致:

s1 = School(’桂林校區(qū)’)s1.add(StudentAdmissionDept(’桂林校區(qū) 招生辦’))s1.add(FacultyDepartment(’桂林校區(qū) 師資部’))root.add(s1)

在配置完第一個桂林校區(qū)后,使用root總部的add方法,添加當(dāng)前桂林校區(qū)為下級。

再新建幾個校區(qū):

s2 = School(’深圳校區(qū)’)s2.add(StudentAdmissionDept(’深圳校區(qū) 招生辦’))s2.add(FacultyDepartment(’深圳校區(qū) 師資部’))root.add(s2)s3 = School(’廣州校區(qū)’)s3.add(StudentAdmissionDept(’廣州校區(qū) 招生辦’))s3.add(FacultyDepartment(’廣州校區(qū) 師資部’))root.add(s3)

以上配置方法跟第一個校區(qū)配置為root總部校區(qū)下級一致。

最后使用遍歷打印出各個校區(qū)的名字:

print(’n’,root.name,’下級學(xué)校層級:n’)for i in root.childrenroot: print(i.name)

結(jié)果為:

python3 簡單實現(xiàn)組合設(shè)計模式

由于沒有排版,以上結(jié)果并沒有很好的直觀顯示層級,剩下的只需要自己排版輸出即可。

在當(dāng)前文章對應(yīng)的代碼編寫中,最后的新建校區(qū)及配置信息,可以新建一個類,封裝好該調(diào)用、輸出方法,可以很方便的使用組合設(shè)計模式。

完整代碼如下:

#根class root: name = ’’ def __init__(self, name): self.name = name def add(self, root): pass #學(xué)校類class School(root): childrenroot = [] def add(self, root): self.childrenroot.append(root) #招生辦class StudentAdmissionDept(root): def __init__(self, name): self.name = name #師資部class FacultyDepartment(root): def __init__(self, name): self.name = name root = School(’總部’)root.add(StudentAdmissionDept(’總部招生辦’))root.add(FacultyDepartment(’總部師資部’))s1 = School(’桂林校區(qū)’)s1.add(StudentAdmissionDept(’桂林校區(qū) 招生辦’))s1.add(FacultyDepartment(’桂林校區(qū) 師資部’))root.add(s1)s2 = School(’深圳校區(qū)’)s2.add(StudentAdmissionDept(’深圳校區(qū) 招生辦’))s2.add(FacultyDepartment(’深圳校區(qū) 師資部’))root.add(s2)s3 = School(’廣州校區(qū)’)s3.add(StudentAdmissionDept(’廣州校區(qū) 招生辦’))s3.add(FacultyDepartment(’廣州校區(qū) 師資部’))root.add(s3) print(’n’,root.name,’下級學(xué)校層級:n’)for i in root.childrenroot: print(i.name)

以上就是python3 簡單實現(xiàn)組合設(shè)計模式的詳細(xì)內(nèi)容,更多關(guān)于Python 實現(xiàn)組合設(shè)計模式的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 暴风影音 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 压滤机滤板_厢式_隔膜_板框压滤机滤板厂家价格型号材质-大凯环保 | 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业 | 新能源汽车电机定转子合装机 - 电机维修设备 - 睿望达 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 济宁工业提升门|济宁电动防火门|济宁快速堆积门-济宁市统一电动门有限公司 | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | 发电机价格|发电机组价格|柴油发电机价格|柴油发电机组价格网 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | EPK超声波测厚仪,德国EPK测厚仪维修-上海树信仪器仪表有限公司 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | 陕西华春网络科技股份有限公司 | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 | 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 水厂自动化-水厂控制系统-泵站自动化|控制系统-闸门自动化控制-济南华通中控科技有限公司 | 流量卡中心-流量卡套餐查询系统_移动电信联通流量卡套餐大全 | 南京和瑞包装有限公司| 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | 火锅底料批发-串串香技术培训[川禾川调官网] | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 破碎机锤头_耐磨锤头_合金锤头-鼎成机械一站式耐磨铸件定制服务 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | 岩棉切条机厂家_玻璃棉裁条机_水泥基保温板设备-廊坊鹏恒机械 | 避光流动池-带盖荧光比色皿-生化流动比色皿-宜兴市晶科光学仪器 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 通风气楼_通风天窗_屋顶风机-山东美创通风设备有限公司 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 精准猎取科技资讯,高效阅读科技新闻_科技猎 | 警用|治安|保安|不锈钢岗亭-售货亭价格-垃圾分类亭-移动厕所厂家-苏州灿宇建材 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 整合营销推广|营销网络推广公司|石家庄网站优化推广公司|智营销 好物生环保网、环保论坛 - 环保人的学习交流平台 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) |