A.當一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之,你不希望這些對象是緊密耦合的
B.許多相關的類僅僅是行為有異。“策略”提供了一種用多個行為中的一個行為來配置一個類的方法
C.需要使用一個算法的不同變體。例如,你可能會定義一些反映不同的空間/時間權衡的算法。當這些變體實現(xiàn)為一個算法的類層次時可以使用策略模式
D.算法使用客戶不應該知道的數(shù)據(jù)。可使用策略模式以避免暴露復雜的、與算法相關的數(shù)據(jù)結構
您可能感興趣的試卷
你可能感興趣的試題
A.當一個抽象模型有兩個方面,其中一個方面依賴于另一方面。將這二者封裝在獨立的對象中以使它們可以各自獨立地改變和復用
B.當對一個對象的改變需要同時改變其它對象,而不知道具體有多少對象有待改變
C.當一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之,你不希望這些對象是緊密耦合的
D.在不影響其他對象的情況下,以動態(tài)、透明的方式給單個對象添加職責
A.抽象出待執(zhí)行的動作以參數(shù)化某對象,使用過程語言中的回調(callback)函數(shù)表達這種參數(shù)化機制
B.Java語言中的:AWT的事件處理
C.在需要用比較通用和復雜的對象指針代替簡單的指針的時候
D.一個系統(tǒng)需要支持交易(transaction),一個交易結構封裝了一組數(shù)據(jù)更新命令
A.你想使用一個已經存在的類,而它的接口不符合你的需求
B.根據(jù)需要創(chuàng)建開銷很大的對象
C.在需要用比較通用和復雜的對象指針代替簡單的指針的時候
D.取代了簡單的指針,它在訪問對象時執(zhí)行一些附加操作
A.一個應用程序使用了大量的對象
B.完全由于使用大量的對象,造成很大的存儲開銷
C.對象的大多數(shù)狀態(tài)都可變?yōu)橥獠繝顟B(tài)
D.你想使用一個已經存在的類,而它的接口不符合你的需求
A.在不影響其他對象的情況下,以動態(tài)、透明的方式給單個對象添加職責
B.處理那些可以撤消的職責
C.客戶程序與抽象類的實現(xiàn)部分之間存在著很大的依賴性
D.當不能采用生成子類的方法進行擴充時。一種情況是,可能有大量獨立的擴展,為支持每一種組合將產生大量的子類,使得子類數(shù)目呈爆炸性增長。另一種情況可能是因為類定義被隱藏,或類定義不能用于生成子類
最新試題
以下不屬于判定表建立步驟的是()
RUP軟件測試流程最后的測試步驟是()
下面關于錯誤推測法說法錯誤的是()
Quest Central for Database數(shù)據(jù)庫監(jiān)控工具不能管理以下哪種數(shù)據(jù)庫()
TestManager使用時首先需要()
以下哪項不屬于軟件測試工具選擇的主要衡量指標()
增殖式集成方式不包括()
編寫功能需求文檔時以下描述錯誤的是()
以下哪項不屬于性能測試需要注意的事項()
下面屬于判定表優(yōu)點的是()