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