關於Decorator模式的幾點想法
1)Decorator的構造子應該有且只有一個Component型別的引數
2)Component強烈建議是介面而不是抽象類。這樣做的好處是Decorator不會遺漏對Component介面的委派。如果必須是抽象類那一定要注意變數只能是private修飾符並且Decerator實現了所有非private函式的委派。這也符合程式碼朝上,狀態朝下的設計原則。
參照《java與模式》中的發票例子:
Order so = new SaleOrder();
so.setCustomerName("aaa"); //!!!
Order so1 = new HeaderDecorator(so);
Order so2 = new FooterDecorator(so);
so.setCustomerName("bbb"); //!!!
//猜猜看,會列印出什麼?
so1.print();
so2.print();
2)Component強烈建議是介面而不是抽象類。這樣做的好處是Decorator不會遺漏對Component介面的委派。如果必須是抽象類那一定要注意變數只能是private修飾符並且Decerator實現了所有非private函式的委派。這也符合程式碼朝上,狀態朝下的設計原則。
參照《java與模式》中的發票例子:
Order so = new SaleOrder();
so.setCustomerName("aaa"); //!!!
Order so1 = new HeaderDecorator(so);
Order so2 = new FooterDecorator(so);
so.setCustomerName("bbb"); //!!!
//猜猜看,會列印出什麼?
so1.print();
so2.print();
相關文章
- 關於Decorator模式模式
- 關於Adapter模式和Decorator模式APT模式
- 關於Java的一點想法Java
- 關於WebWind一點想法Web
- 關於本書的一點想法
- 關於遊戲付費的一點想法遊戲
- 關於Proxy和Decorator設計模式的疑問設計模式
- 關於shutdown的幾個模式模式
- 關於web開發前期工作的一點想法Web
- 關於 blog文集和翻譯的一點想法
- 關於完善施工專案管理中崗位薪級工資制的幾點想法(轉)專案管理
- Banq, 關於您的Chain of Responsibility模式的一些想法AI模式
- 關於美食網站的想法!網站
- 關於判斷兩個矩陣相交的一點想法矩陣
- 關於大語言模型時代下自學的一點想法模型
- 關於大併發SOCKET通訊的系統構架的幾點想法,望大俠們給予指點
- 最近關於工作的幾點思考
- 關於json的幾點思考JSON
- 網路遊戲效能測試的幾點想法遊戲
- 關於JavaScript跨域的若干想法JavaScript跨域
- 關於CORS 應該注意的幾點CORS
- 關於安全策略的幾點解析
- 關於Oracle baseline的幾點Oracle
- 關於MFC操作Excel的幾點心得Excel
- 關於模式爭論的一點點思考模式
- 關於大資料和網際網路的一點想法薦大資料
- 關於Decorator裝飾器模式巢狀包裝的個人的改進設想模式巢狀
- 關於js繼承的想法筆記JS繼承筆記
- 關於redis,你需要了解的幾點!Redis
- 關於MongoDB的幾點注意事項UMMongoDB
- 關於產品經理的幾點思考?
- 關於 Swift,我不喜歡的幾點Swift
- 關於redo的幾個小知識點
- 關於面試你不知道的幾點面試
- Proxy模式與Decorator模式的區別模式
- 對於技術焦慮的一點想法
- Decorator模式有代理的味道模式
- Decorator裝飾模式模式