A.當一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之,你不希望這些對象是緊密耦合的 B.許多相關的類僅僅是行為有異。“策略”提供了一種用多個行為中的一個行為來配置一個類的方法 C.需要使用一個算法的不同變體。例如,你可能會定義一些反映不同的空間/時間權衡的算法。當這些變體實現為一個算法的類層次時可以使用策略模式 D.算法使用客戶不應該知道的數據??墒褂貌呗阅J揭员苊獗┞稄碗s的、與算法相關的數據結構
A.當一個抽象模型有兩個方面,其中一個方面依賴于另一方面。將這二者封裝在獨立的對象中以使它們可以各自獨立地改變和復用 B.當對一個對象的改變需要同時改變其它對象,而不知道具體有多少對象有待改變 C.當一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之,你不希望這些對象是緊密耦合的 D.在不影響其他對象的情況下,以動態(tài)、透明的方式給單個對象添加職責
A.抽象出待執(zhí)行的動作以參數化某對象,使用過程語言中的回調(callback)函數表達這種參數化機制 B.Java語言中的:AWT的事件處理 C.在需要用比較通用和復雜的對象指針代替簡單的指針的時候 D.一個系統(tǒng)需要支持交易(transaction),一個交易結構封裝了一組數據更新命令