我對我的測試這個問題:編程模式 - 例如學習
是什麼樣的規劃/設計模式是:
FileReader fr = new FileReader("file.txt"); BufferedReader bf = new BufferedReader(fr);
我的麻煩抱歉,編程模式的定義對我來說還不清楚,我不知道如何正確回答這個問題。
我對我的測試這個問題:編程模式 - 例如學習
是什麼樣的規劃/設計模式是:
FileReader fr = new FileReader("file.txt"); BufferedReader bf = new BufferedReader(fr);
我的麻煩抱歉,編程模式的定義對我來說還不清楚,我不知道如何正確回答這個問題。
這是Decorator Pattern的一個例子。
作爲鏈接的維基百科文章中指出:
裝飾圖案是一種設計模式,其允許動態地添加到現有的對象的行爲。
在你的榜樣,你將緩衝到FileReader
,這比提供了更高效讀取正規,無緩衝FileReader
。
這是Decorator
模式。來自設計模式書籍:
意圖:動態地附加額外的責任。 裝飾提供了一個靈活的選擇子類用於擴展 功能
...
適用性:使用裝飾
- 到責任,加入到單獨的對象動態和透明,那就是,在不影響其他對象。
- 責任可以撤回。
- 當通過子類擴展是不切實際的。有時可能會有大量的獨立擴展,並且會產生子類的爆炸以支持每種組合。或者一類 定義可能隱藏或以其他方式不可用於子類別。
在BufferedReader
情況下,它附加緩衝功能,以FileReader
。
如果您想了解更多關於模式的知識,我建議您閱讀本書(或者更輕些的「Head First Patterns」)。 另外,關於SOK裏面的模式使用方面,有很棒的answer--非常酷的東西!
我相信他們正在尋找裝飾模式。 –