• Composite(组合)


    意图:

     将对象组合成树形结构以表示“部分-整体”的层次结构。C o m p o s i t e 使得用户对单个对象和组合对象的使用具有一致性。 

    适用性:

     你想表示对象的部分-整体层次结构。

    你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。

    #!/usr/bin/python
    #coding:utf8
     
    """
    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);
  • 相关阅读:
    xmlHttpRequest参数
    蒙哥马利:“沙漠之狐”猎手
    c# as is 类型转换
    值类型和引用类型
    BuuctfmiscN种方法解决
    Buuctfmisc二维码
    Buuctfweb[HCTF 2018]WarmUp
    Buuctfmisc大白
    map用索引作下标之后,再插值时报错.
    c++ stl 的string 的size() legth()区别
  • 原文地址:https://www.cnblogs.com/navysummer/p/9835157.html
Copyright © 2020-2023  润新知