A.你想使用一個已經(jīng)存在的類,而它的接口不符合你的需求 B.你想創(chuàng)建一個可以復(fù)用的類,該類可以與其他不相關(guān)的類或不可預(yù)見的類(即那些接口可能不一定兼容的類)協(xié)同工作 C.你想使用一些已經(jīng)存在的子類,但是不可能對每一個都進(jìn)行子類化以匹配它們的接口。對象適配器可以適配它的父類接口 D.如果刪除對象的外部狀態(tài),那么可以用相對較少的共享對象取代很多組對象
A.當(dāng)一個類不知道它所必須創(chuàng)建的對象的類的時候 B.當(dāng)一個類的實例只能有幾個不同狀態(tài)組合中的一種時 C.當(dāng)這個唯一實例應(yīng)該是通過子類化可擴(kuò)展的,并且客戶應(yīng)該無需更改代碼就能使用一個擴(kuò)展的實例時 D.當(dāng)一個類希望由它的子類來指定它所創(chuàng)建的對象的時候
A.當(dāng)要實例化的類是在運行時刻指定時,例如,通過動態(tài)裝載 B.當(dāng)你要強(qiáng)調(diào)一系列相關(guān)的產(chǎn)品對象的設(shè)計以便進(jìn)行聯(lián)合使用時 C.為了避免創(chuàng)建一個與產(chǎn)品類層次平行的工廠類層次時 D.當(dāng)一個類的實例只能有幾個不同狀態(tài)組合中的一種時