zoukankan      html  css  js  c++  java
  • 组合模式

    意图:
     将对象组合成树形结构以表示“部分-整体”的层次结构。C o m p o s i t e 使得用户对单个对象和组合对象的使用具有一致性。 
     
    适用性:
     你想表示对象的部分-整体层次结构。
    你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
     
    示例代码
    # -*- coding:utf-8 -*-
    """
    Composite
    """
    class Component:
        def __init__(self, strName):
            self.m_strName = strName
     
        def Add(self, com):
            pass
     
        def Display(self, nDepth):
            pass
      
    class Leaf(Component):
        def Add(self, com):
            print("leaf can't add")
     
        def Display(self, nDepth):
            strtemp = "-" * nDepth
            strtemp = strtemp + self.m_strName
            print(strtemp)
     
    class Composite(Component):
        def __init__(self, strName):
            self.m_strName = strName
            self.c = []
     
        def Add(self, com):
            self.c.append(com)
     
        def Display(self, nDepth):
            strtemp = "-" * nDepth
            strtemp = strtemp + self.m_strName
            print(strtemp)
            for com in self.c:
                com.Display(nDepth + 2)
     
    if __name__ == "__main__":
        p = Composite("Wong")
        p.Add(Leaf("Lee"))
        p.Add(Leaf("Zhao"))
        p1 = Composite("Wu")
        p1.Add(Leaf("San"))
        p.Add(p1)
        p.Display(1)
    执行结果:
    从执行结果可以看出,通过一个类对象把其他的类对象添加到自身的变量列表,然后循环执行该列表,执行所有对象的相同方法
     

  • 相关阅读:
    克隆节点及添加属性节点
    元素属性的添加删除(原生js)
    清浮动方法
    css样式获取及兼容性(原生js)
    js基础---数据类型转换
    js基础---数字日期及运算
    js基础---object对象
    input询问键盘输入超时自动跳过选择默认值
    xpath定位
    selenium报错问题解决方法
  • 原文地址:https://www.cnblogs.com/absoluteli/p/14124041.html
Copyright © 2011-2022 走看看