A.當(dāng)一個抽象模型有兩個方面,其中一個方面依賴于另一方面。將這二者封裝在獨(dú)立的對象中以使它們可以各自獨(dú)立地改變和復(fù)用 B.當(dāng)對一個對象的改變需要同時改變其它對象,而不知道具體有多少對象有待改變 C.當(dāng)一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之,你不希望這些對象是緊密耦合的 D.在不影響其他對象的情況下,以動態(tài)、透明的方式給單個對象添加職責(zé)
A.抽象出待執(zhí)行的動作以參數(shù)化某對象,使用過程語言中的回調(diào)(callback)函數(shù)表達(dá)這種參數(shù)化機(jī)制 B.Java語言中的:AWT的事件處理 C.在需要用比較通用和復(fù)雜的對象指針代替簡單的指針的時候 D.一個系統(tǒng)需要支持交易(transaction),一個交易結(jié)構(gòu)封裝了一組數(shù)據(jù)更新命令
A.你想使用一個已經(jīng)存在的類,而它的接口不符合你的需求 B.根據(jù)需要創(chuàng)建開銷很大的對象 C.在需要用比較通用和復(fù)雜的對象指針代替簡單的指針的時候 D.取代了簡單的指針,它在訪問對象時執(zhí)行一些附加操作