2013-04-09 46 views
4

我認爲自己擁有GoF設計模式的中級知識。但是,在將這些模式分類爲結構和行爲模式時,我感到困惑。我對創建模式沒有任何困惑。爲什麼裝飾者是一種結構性而非行爲性的設計模式?

維基百科 - 修飾模式 - 在面向對象的編程中,裝飾圖案是一種設計模式,其允許行爲被添加到單個對象,靜態或動態地,在不影響其他對象的行爲同一班。

從上面的定義很顯然,它是關於行爲,那麼

  1. 爲什麼裝飾是一種結構模式?
  2. 結構模式的標準是什麼?
  3. 行爲模式的標準是什麼?

謝謝。

+0

哦,是的,我很高興java不會與那些東西混淆,我正在閱讀一本Python書,它是在討論裝飾者,哦,男孩是我的頭燃燒。 – jsedano 2013-04-09 15:50:03

+0

@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

+0

我最好開始閱讀關於這種類型的東西XD – jsedano 2013-04-09 16:12:33

回答

0

如果您需要在報價方面的答案:行爲的變化是由於結構修改。
I.e.你「裝飾」一個對象(通過你的班級的特定結構)以達到所需的行爲(通過授權)

+1

我沒有得到它。我認爲,每一種模式都會強加一些結構,對吧? – 2013-04-09 16:02:59

5

行爲模式是關於不同對象之間的溝通:諸如調解員,觀察者,責任鏈(甚至訪問者,被描述爲「從其操作的對象結構中分離算法」)。它們指定不同對象如何交互。

結構模式是關於組成和分層抽象的方法,它們是適配器,橋接和複合的東西。裝飾者是一種用於組成功能的技術,因此它與結構模式一致。

相關問題