本來這篇是要元旦發出來的,可惜玩的太嗨了,沒有時間發,只能抽空看看知識點。
祝大家新年新氣象,身心健康,心想事成。
相信只要玩過電腦的人都對下面的這張圖不會陌生
這結構想必大家也都熟悉,就是樹狀結構
其實這也是組合模式的定義
組合模式(composite):將物件組合成樹形結構以表示「部分-整體」的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。組合模式對單個物件(葉子物件)和組合物件(組合物件)具有一致性,它將物件組織到樹結構中,可以用來描述整體與部分的關係。同時它也模糊了簡單元素(葉子物件)和複雜元素(容器物件)的概念,使得客戶能夠像處理簡單元素一樣來處理複雜元素,從而使客戶程式能夠與複雜元素的內部結構解耦。
上面的圖展示了計算機的檔案系統,檔案系統由檔案和目錄組成,目錄下面也可以包含檔案或者目錄,計算機的檔案系統是用遞迴結構來進行組織的,對於這樣的資料結構是非常適用使用組合模式的。
在使用組合模式中需要注意一點也是組合模式最關鍵的地方:葉子物件和組合物件實現相同的介面。這就是組合模式能夠將葉子節點和物件節點進行一致處理的原因。
組合模式組成角色
uml圖
abstract class file
public string getname()
abstract
void add(file file);
abstract
void remove(file file);
void display();
}class musicfile extends file
@override
public
void
add(file file) {}
@override
public
void
remove(file file) {}
@override
public
void
display()
}class textfile extends file
@override
public
void
add(file file) {}
@override
public
void
remove(file file) {}
@override
public
void
display()
}class folder extends file
@override
public
void
add(file file)
@override
public
void
remove(file file)
@override
public
void
display()
}}public
class
client
}
設計思想學習 策略模式
首先來看一下定義 策略模式 strategy 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換 策略模式主要有三點組成 舉個栗子 我中午想吃好吃的,但可以吃的東西有很多種 烤鴨 龍蝦 帝王蟹,但是不管吃啥,都是吃,所有就有了抽象策略角色 inte ce dine 下面這些是具體吃啥,也...
設計思想學習 外觀模式
記得有一次,我們一起去了乙個別墅轟趴,那時候大家都去玩自己想玩的事情,大廳開燈是必須的,看電影的要去小房間開投影儀幕布,玩遊戲的要開電腦或者xbox等等。最後玩的筋疲力盡了還要乙個個去把他們關掉,那時候就在想如果有乙個按鈕關掉或者開啟所有多好。直到今天看了外觀模式才知道,那個想法就是乙個外觀模式的思...
設計思想學習 建造者模式
建造者模式 builder 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者模式組成uml圖 個人理解 建造者定義很通俗易懂,就是將裝配的過程和成果展示分離,過程不變,但是我可以改變材料,出來不相同的作品。這個過程就由抽象建造者定義 實際建造者就是通過定義好的過程新增...