iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中结构型组合模式的示例分析
  • 887
分享到

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

2023-06-29 04:06:50 887人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关python中结构型组合模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、组合模式组合,将多个对象组合成为一个树状结构,来表示业务逻辑上的层次。组合模式使得用户对

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

一、组合模式

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

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

优点:

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

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

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

二、应用场景

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

三、代码示例

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

实体角色:

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

--结束END--

本文标题: Python中结构型组合模式的示例分析

本文链接: https://www.lsjlt.com/news/322630.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中结构型组合模式的示例分析
    这篇文章将为大家详细讲解有关Python中结构型组合模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、组合模式组合,将多个对象组合成为一个树状结构,来表示业务逻辑上的层次。组合模式使得用户对...
    99+
    2023-06-29
  • Python设计模式结构型组合模式
    目录一、组合模式二、应用场景三、代码示例一、组合模式 组合,将多个对象组合成为一个树状结构,来表示业务逻辑上的层次。组合模式使得用户对单个对象和组合对象的使用具有一致性。 比如,描述...
    99+
    2024-04-02
  • Java结构型模式中的组合模式详解
    目录一.介绍二.UML类图1.透明方式2.安全方式三.具体代码四.使用场景五.优点一.介绍 组合模式(Composite Pattern)属于结构型模式。组合模式又叫作部分整体模式,...
    99+
    2023-02-16
    Java结构型模式 Java组合模式
  • PHP结构型模式之组合模式
    目录组合模式(Composite Pattern)是什么组合模式的优点组合模式的实现组合模式的使用总结组合模式(Composite Pattern)是什么 组合模式是一种结构型模式,...
    99+
    2023-05-14
    PHP结构型模式 PHP组合模式
  • js设计模式之结构型享元模式的示例分析
    小编给大家分享一下js设计模式之结构型享元模式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!运用共享技术有效地支持大量...
    99+
    2024-04-02
  • Angular中结构型指令、模块和样式的示例分析
    这篇文章给大家分享的是有关Angular中结构型指令、模块和样式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一,结构型指令*是一个语法糖,<a *ngIf="user.login&qu...
    99+
    2023-06-06
  • Angular结构型指令模块和样式的示例分析
    这篇文章主要介绍了Angular结构型指令模块和样式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一,结构型指令*是一个语法糖,<a *ngIf="...
    99+
    2023-06-15
  • .Net结构型设计模式之组合模式(Composite)
    目录一、动机(Motivate)二、意图(Intent)三、结构图(Structure)四、模式的组成五、组合模式的具体代码实现1、透明式的组合模式2、安全式的组合模式六、组合模式的...
    99+
    2024-04-02
  • Java 中组合模型之对象结构模式的详解
    Java 中组合模型之对象结构模式的详解一、意图 将对象组合成树形结构以表示”部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 二、适用性你想表示对象的部分-整体层次结构你希望用户忽略组合对象与单个对...
    99+
    2023-05-31
    java 组合模型 ava
  • PHP中原型模式的示例分析
    这篇文章将为大家详细讲解有关PHP中原型模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。原型模式其实更形象的来说应该叫克隆模式。它主要的行为是对对象进行克隆,但是又把被克隆的对象称之为最初的原...
    99+
    2023-06-20
  • PHP结构型模式之组合模式怎么实现
    今天小编给大家分享一下PHP结构型模式之组合模式怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。组合模式(Compos...
    99+
    2023-07-05
  • Java结构型设计模式之组合模式详解
    目录组合模式应用场景优缺点主要角色组合模式结构分类透明组合模式创建抽象根节点创建树枝节点创建叶子节点客户端调用安全组合模式创建抽象根节点创建树枝节点创建叶子节点客户端调用组合模式 组...
    99+
    2024-04-02
  • 结合ES6 编写 JavaScript 设计模式中的结构型模式
    目录前言什么是设计模式?结构型设计模式适配器模式实例桥接模式实例组合模式实例装饰者模式实例门面模式实例享元模式实例代理模式实例前言 本文将对 20 多种 JavaScript 设计模...
    99+
    2024-04-02
  • Python中行为型观察者模式的示例分析
    这篇文章主要介绍Python中行为型观察者模式的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、观察者模式观察者模式,必须包含 “观察者” 和 “被观察者” 这两个角色,并且观察者和被观察者之间存在 “观察...
    99+
    2023-06-29
  • Java结构型设计模式之组合模式CompositePattern详解
    目录概述三大组件应用案例顶层组件OrganizationComponentComposite组件叶子节点客户端测试UML类图总结概述 组合模式(Composite Pattern),...
    99+
    2022-11-13
    Java Composite Pattern Java 组合模式
  • Java原型模式的示例分析
    这篇文章主要介绍了Java原型模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.思考问题现在有一只羊 tom,姓名为: tom,年龄为:1,颜色为:白色,请编写...
    99+
    2023-06-29
  • Java结构型设计模式中代理模式示例详解
    目录代理模式分类主要角色作用静态代理与动态代理的区别静态代理的基本使用创建抽象主题创建真实主题创建代理主题客户端调用JDK动态代理的基本使用创建抽象主题创建真实主题创建代理主题客户端...
    99+
    2024-04-02
  • Angular2之结构型指令的示例分析
    这篇文章主要介绍了Angular2之结构型指令的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Angular 有一个强力的模板引擎,...
    99+
    2024-04-02
  • java之JVM架构模型的示例分析
    小编给大家分享一下java之JVM架构模型的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java可以用来干什么Java主要应用于:1. web开发;2....
    99+
    2023-06-14
  • .Net结构型设计模式之组合模式怎么实现
    今天小编给大家分享一下.Net结构型设计模式之组合模式怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、动机(Mot...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作