組合模式:將物件組合成樹形結構以表示「整體-部分」的層次關係。組合使得使用者對單個物件和復合物件的使用具有一致性。
組合模式的關鍵的就是,元件和組合的整體具有乙個共同的基類。
from abc import abcmeta,abstractmethod
class
comptercompoent
(metaclass=abcmeta)
:def
__init__
(self,name)
: self._name = name
@abstractmethod
defshowinfo
(self)
:pass
class
cpu(comptercompoent)
:def
__init__
(self,name)
:super()
.__init__(name)
defshowinfo
(self)
:print
("高階cpu"
)class
memorycard
(comptercompoent)
:def
__init__
(self,name)
:super()
.__init__(name)
defshowinfo
(self)
:print
("高階記憶體條"
)class
harddisk
(comptercompoent)
:def
__init__
(self,name)
:super()
.__init__(name)
defshowinfo
(self)
:print
("1t的大硬碟"
)class
graphcard
(comptercompoent)
:def
__init__
(self,name)
:super()
.__init__(name)
defshowinfo
(self)
:print
("高階顯示卡"
)class
computercomposite
(comptercompoent)
:def
__init__
(self,name)
:super()
.__init__(name)
self._compoents =
defshowinfo
(self)
:print
("%s由以下部分組成"
%(self._name)
)for element in self._compoents:
element.showinfo(
)def
addcomponent
(self,component)
:class
computer
(computercomposite)
:def
__init__
(self,name)
:super()
.__init__(name)
defshowinfo
(self)
:print
("我是電腦:"
)super()
.showinfo(
)def
test()
: computer = computer(
"ibm"
) cpu = cpu(
"i7"
) computer.addcomponent(cpu)
memory = memorycard(
"記憶體條"
) computer.addcomponent(memory)
harddisk = harddisk(
"硬碟"
) computer.addcomponent(harddisk)
graphcard = graphcard(
"顯示卡"
) computer.addcomponent(graphcard)
computer.showinfo(
)test(
);
執行結果:
我是電腦:
ibm由以下部分組成
高階cpu
高階記憶體條
1t的大硬碟
高階顯示卡
aaa python設計模式 組合模式
學習版本3.5.2 組合模式的目的是將物件組合成樹形結構來表示 整體 部分 的層次結構,組合模式使得使用者對單個物件和組合物件的使用具有一致性。舉個例子 用組合模式去做乙個簡單的資料夾系統 class basefile object def init self,name self.name name...
組合模式 設計模式 組合模式
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...