我認爲自己擁有GoF設計模式的中級知識。但是,在將這些模式分類爲結構和行爲模式時,我感到困惑。我對創建模式沒有任何困惑。爲什麼裝飾者是一種結構性而非行爲性的設計模式?
維基百科 - 修飾模式 - 在面向對象的編程中,裝飾圖案是一種設計模式,其允許行爲被添加到單個對象,靜態或動態地,在不影響其他對象的行爲同一班。
從上面的定義很顯然,它是關於行爲,那麼
- 爲什麼裝飾是一種結構模式?
- 結構模式的標準是什麼?
- 行爲模式的標準是什麼?
謝謝。
我認爲自己擁有GoF設計模式的中級知識。但是,在將這些模式分類爲結構和行爲模式時,我感到困惑。我對創建模式沒有任何困惑。爲什麼裝飾者是一種結構性而非行爲性的設計模式?
維基百科 - 修飾模式 - 在面向對象的編程中,裝飾圖案是一種設計模式,其允許行爲被添加到單個對象,靜態或動態地,在不影響其他對象的行爲同一班。
從上面的定義很顯然,它是關於行爲,那麼
謝謝。
如果您需要在報價方面的答案:行爲的變化是由於結構修改。
I.e.你「裝飾」一個對象(通過你的班級的特定結構)以達到所需的行爲(通過授權)
我沒有得到它。我認爲,每一種模式都會強加一些結構,對吧? – 2013-04-09 16:02:59
行爲模式是關於不同對象之間的溝通:諸如調解員,觀察者,責任鏈(甚至訪問者,被描述爲「從其操作的對象結構中分離算法」)。它們指定不同對象如何交互。
結構模式是關於組成和分層抽象的方法,它們是適配器,橋接和複合的東西。裝飾者是一種用於組成功能的技術,因此它與結構模式一致。
哦,是的,我很高興java不會與那些東西混淆,我正在閱讀一本Python書,它是在討論裝飾者,哦,男孩是我的頭燃燒。 – jsedano 2013-04-09 15:50:03
@anakata:Python中的[Decorator](http://stackoverflow.com/questions/739654/understanding-python-decorators)是一種語言結構;這個問題涉及[裝飾設計模式](http://en.wikipedia.org/wiki/Decorator_pattern) – AlexFoxGill 2013-04-09 15:54:26
我最好開始閱讀關於這種類型的東西XD – jsedano 2013-04-09 16:12:33