美文网首页
Python组合模式

Python组合模式

作者: 虾想家 | 来源:发表于2017-03-19 14:08 被阅读63次

组合模式,像树的枝和叶一样进行组合。

class Branch(object):
    def __init__(self):
        super().__init__()
        self.branch = []
        self.leaf = []

    def add(self, obj):
        if type(obj) == Branch:
            self.branch.append(obj)
        else:
            self.leaf.append(obj)

    def __str__(self):
        content = ""
        for branch in self.branch:
            content += str(branch) + '\n'
        return "branch" + str([str(leaf) for leaf in self.leaf]) + '\n' + content


class Leaf(object):
    def __init__(self):
        super().__init__()

    def add(self):
        pass

    def __str__(self):
        return "leaf"


def main():
    branch_a = Branch()
    branch_a.add(Leaf())
    branch_a.add(Leaf())

    branch_b = Branch()
    branch_b.add(Leaf())
    branch_b.add(branch_a)

    branch_main = Branch()
    branch_main.add(branch_b)

    print(branch_main)


if __name__ == '__main__':
    main()

相关文章

  • Python组合模式

    组合模式,像树的枝和叶一样进行组合。

  • Python设计模式 - 组合模式

    """ 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具...

  • Python装饰器模式

    标签: python|设计模式|装饰器模式 引子 对于装饰器模式我正在一点一点的理解........使用对象组合的...

  • python设计模式(七):组合模式

    组合,将对象组合成树状结构,来表示业务逻辑上的[部分-整体]层次,这种组合使单个对象和组合对象的使用方法一样。 如...

  • 设计模式:组合模式 职责链模式

    组合模式 职责链模式 组合模式 组合模式将对象组合成树形结构,以表示“部分-整体”的层次结构。 在组合模式的树形结...

  • 第4章 结构型模式-组合模式

    一、组合模式简介 二、组合模式的优缺点 三、组合模式的使用场景 、组合模式的实例

  • 组合模式(统一叶子与组合对象)

    目录 从生活场景出发,映射组合模式 组合模式的理论概念 组合模式的实现 组合模式在源码中的应用 组合 “优于” 继...

  • 组合模式

    1. 组合模式 1.1 组合模式的定义 组合模式(Composite): 又称部分-整体模式, 将对象组合成树形结...

  • 设计模式(python实现)--组合模式(Composite)

    Composite 动机(Motivation) 客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现...

  • 组合模式

    设计模式系列7--组合模式 《Objective-c 编程之道 iOS 设计模式解析》 - 组合模式 常见组合模式...

网友评论

      本文标题:Python组合模式

      本文链接:https://www.haomeiwen.com/subject/scbmnttx.html