python設計模式 組合模式

2021-08-10 05:10:16 字數 1547 閱讀 2944

學習版本3.5.2

組合模式的目的是將物件組合成樹形結構來表示「整體-部分」的層次結構,組合模式使得使用者對單個物件和組合物件的使用具有一致性。

舉個例子:用組合模式去做乙個簡單的資料夾系統

class basefile(object):

def __init__(self, name):

self.name = name

class myfolder(basefile):

def __init__(self, name):

super(myfolder,self).__init__(name)

self.filelist =

def add(self, basefile):

def display(self, *num):

if len(num) > 0:

n = num[0]

else:

n = 0

print("-"*n+self.name+"-"*n)

print("="*20)

n += 1

for f in self.filelist:

f.display(n)

class myfile(basefile):

def add(self, basefile):

print("can not put a file into a file")

def display(self, *num):

if len(num) > 0:

n = num[0]

else:

n = 0

print("-"*n+self.name)

if __name__ == "__main__":

folder1 = myfolder("folder1")

folder11 = myfolder("folder11")

folder111 = myfolder("folder111")

folder12 = myfolder("folder12")

file1 = myfile("file1")

file2 = myfile("file2")

file3 = myfile("file3")

file4 = myfile("file4")

folder1.add(folder11)

folder1.add(folder12)

folder11.add(folder111)

folder1.add(file1)

folder11.add(file2)

folder12.add(file3)

folder111.add(file4)

folder11.display()

執行結果

folder11

********************

-folder111-

********************

--file4

-file2

Python設計模式 組合模式

組合模式 將物件組合成樹形結構以表示 整體 部分 的層次關係。組合使得使用者對單個物件和復合物件的使用具有一致性。組合模式的關鍵的就是,元件和組合的整體具有乙個共同的基類。from abc import abcmeta,abstractmethod class comptercompoent met...

組合模式 設計模式 組合模式

1.需求分析 假設要給乙個大公司做辦公管理系統,公司有人力資源部 財務部等,然後公司在其他城市還有分公司,分公司也有自己的人力資源部 財務部等,要求總公司 分公司以及各部分成樹狀結構管理。要完成這麼乙個系統,為了有乙個更好的設計,方便開發的展開,就需要了解乙個設計模式 組合模式。2.定義 將物件組合...

Python與設計模式 組合模式

class company name def init self,name self.name name def add self,company pass def remove self,company pass def display self,depth pass def listduty s...