雖然設計模式分得太細會有過度的趨勢,decorator某種程度上也是一種facade模式。
但是實現起來還是比較漂亮的。
而後面那個人的class arlist: list, ilist的方法就不是decorator。它沒有乙個內部的list。這樣
however, now all of list's methods are visible, including stuff not just in ilist, hence broadening what must be overridden.
但是如果我不override,而是繼續用list的其他可見的方法難道不行?也許是list的其他方法有些依賴add/remove方法的會出現問題。
另外,他們討論的ilist似乎是nh的generic而不是.net的ilist,要注意using指令裡指定的到底是哪乙個。
繼續研究中...
update: ilist就是system.collection.generic的,nh裡雖然使用ilist介面,但是有自己的persistgenericlist類(大概是這個名字),而它只是實現了ilist介面,卻不是list繼承出來的。所以不能直接從nh的持久化類轉成list.只能用decorator,而且_list必須用介面宣告才能接收nh的list()出來的集合。
設計模式 decorator模式
裝飾者模式體現了 敏捷開發思想中的 對類要 開放擴充套件,關閉修改.例子 乙個person主類 若干裝飾品類 紅衣服,藍衣服,藍鞋子,紅鞋子 測試 new乙個person 給他穿上紅衣服藍鞋子 code person介面 public inte ce ipersonperson類 package c...
設計模式 decorator模式
兩點 目的 在不改變被裝飾類功能的前提下增加新功能 特點 繼承是子類和父類強耦合,橋接是低耦合 例子 class print 抽象介面 virtual int getcolumns virtual int getrows virtual string getrowcontent int row el...
設計模式 Decorator裝飾模式
decorator裝飾模式是一種結構型模式,它主要是解決 過度地使用了繼承來擴充套件物件的功能 由於繼承為型別引入的靜態特質,使得這種擴充套件方式缺乏靈活性 並且隨著子類的增多 擴充套件功能的增多 各種子類的組合 擴充套件功能的組合 會導致更多子類的膨脹 多繼承 繼承為型別引入的靜態特質的意思是說以...