合肥網(wǎng)站關(guān)鍵詞好網(wǎng)站
某軟件公司欲開發(fā)一個(gè) Windows 平臺(tái)上的公告板系統(tǒng)。在明確用戶需求后,該公司的 架構(gòu)師決定采用 Command 模式實(shí)現(xiàn)該系統(tǒng)的界面顯示部分,并設(shè)計(jì) UML 類圖如下 圖所示。圖中與 Command 模式中的 Invoker 角色相對(duì)應(yīng)的類是( ) ,與 ConcreteCommand 角色相對(duì)應(yīng)的類是() 。
A.Command B.MenuItem C.Open D.ButktinBoardScreen
A.Command B.MenuItem C.Open D.BulktinBoardScreen
【解析】
Command(命令)模式是設(shè)計(jì)模式中行為模式的一種,它將“請(qǐng)求”封裝成對(duì)象,以便使用不同的請(qǐng)求、隊(duì)列或者日志來參數(shù)化其他對(duì)象。Command 模式也支持可撤銷的操作。
Command 模式的類圖如下所示。
對(duì)于題目所給出的圖,與 Invoker 角色相對(duì)應(yīng)的類是 MenuItem,與 Concrete Command 角色相對(duì)應(yīng)的類是 Open。
某軟件公司基于面向?qū)ο蠹夹g(shù)開發(fā)了一套圖形界面顯示構(gòu)件庫 VisualComponent。在使用該庫構(gòu)建某圖形界面時(shí),用戶要求為界面定制一些特效顯示效果,如帶滾動(dòng)條、能夠顯示藝術(shù)字體的透明窗體等。針對(duì)這種需求,公司采用( ) 最為靈活。
A.橋接模式
B.命令模式
C.組合模式
D.裝飾模式
【解析】
根據(jù)題干描述,可以看出其基礎(chǔ)是一個(gè)圖形界面,并要求為圖形界面提供一些定制的特效,例如帶滾動(dòng)條的圖形界面,能夠顯示藝術(shù)字體且透明的圖形界面等。這要求能夠動(dòng)態(tài)地對(duì)一個(gè)對(duì)象進(jìn)行功能上的擴(kuò)展,也可以對(duì)其子類進(jìn)行功能上的擴(kuò)展。對(duì)照選項(xiàng)中的 4 種設(shè)計(jì)模式,裝飾模式最符合這一要求。
某軟件公司承接了為某工作流語言開發(fā)解釋器的工作。該工作流語言由多種活動(dòng)節(jié)點(diǎn)構(gòu)成,具有類 XML 的語法結(jié)構(gòu)。用戶要求解釋器工作時(shí),對(duì)每個(gè)活動(dòng)節(jié)點(diǎn)進(jìn)行一系列的處理,包括執(zhí)行活動(dòng)、日志記錄、調(diào)用外部應(yīng)用程序等,并且要求處理過程具有可擴(kuò)展能力。針對(duì)這種需求,公司采用( ) 最為恰當(dāng)。
A.適配器模式
B.迭代器模式
C.訪問者模式
D.觀察者模式
【解析】
根據(jù)題干描述,可以看出本題的核心在于對(duì)某個(gè)具有固定結(jié)構(gòu)的活動(dòng)節(jié)點(diǎn)需要多種處理能力,且處理能力可擴(kuò)展,也就是說要求在不改變?cè)瓉眍惤Y(jié)構(gòu)(活動(dòng)節(jié)點(diǎn))的基礎(chǔ)上增加新功能。對(duì)照 4 個(gè)選項(xiàng),發(fā)現(xiàn)訪問者模式最符合要求。
某公司欲開發(fā)一個(gè)軟件系統(tǒng)的在線文檔幫助系統(tǒng),用戶可以在任何一個(gè)查詢上下文中輸 入查詢關(guān)鍵字,如果當(dāng)前查詢環(huán)境下沒有相關(guān)內(nèi)容,則系統(tǒng)會(huì)將查詢按照一定的順序轉(zhuǎn) 發(fā)給其他查詢環(huán)境。基于上述需求,采用( )最為合適。
A.責(zé)任鏈模式 B.橋接模式 C.裝飾模式 D.適配器模式
【解析】
本題主要考查設(shè)計(jì)模式的理解與應(yīng)用。根據(jù)題干描述,在線文檔系統(tǒng)需要根據(jù)用戶的查詢需求逐步將查詢請(qǐng)求依次傳遞,對(duì)比 4 個(gè)候選項(xiàng),其中在責(zé)任鏈模式里,很多對(duì)象由每一 個(gè)對(duì)象對(duì)其下家的引用而連接起來形成一條鏈。請(qǐng)求在這個(gè)鏈上傳遞,直到鏈上的某一個(gè)對(duì) 象決定處理此請(qǐng)求。因此責(zé)任鏈模式是能夠滿足該要求的最好模式。
某公司欲開發(fā)一套窗體圖形界面類庫。該類庫需要包含若干預(yù)定義的窗格(Pane)對(duì)象, 例如 TextPane、ListPane 等,窗格之間不允許直接引用。基于該類庫的應(yīng)用由一個(gè)包 含一組窗格的窗口組成,并需要協(xié)調(diào)窗格之間的行為?;谠擃悗?#xff0c;在不引用窗格的前 提下實(shí)現(xiàn)窗格之間的協(xié)作,應(yīng)用開發(fā)者應(yīng)采用( )最為合適。
A.備忘錄模式 B.中介者模式 C.訪問者模式 D.迭代器模式
【解析】
本題主要考查設(shè)計(jì)模式的理解與應(yīng)用。根據(jù)題干描述,應(yīng)用系統(tǒng)需要使用某公司開發(fā)的 類庫,該應(yīng)用系統(tǒng)是一組窗格組成,應(yīng)用需要協(xié)調(diào)窗格之間的行為,并且不能引用窗格自身, 在這種要求下,對(duì)比 4 個(gè)候選項(xiàng),其中中介者模式用一個(gè)中介對(duì)象封裝一系列的對(duì)象交互。 中介者使用各對(duì)象不需要顯式的相互調(diào)用,從而使其耦合松散??梢钥闯鲈撃J阶罘闲枨蟆?/p>
某公司開發(fā)一個(gè)文檔編輯器,該編輯器允許在文檔中直接嵌入圖形對(duì)象,但開銷很大。 用戶在系統(tǒng)設(shè)計(jì)之初提出編輯器在打開文檔時(shí)必須十分迅速,可以暫時(shí)不顯示當(dāng)前頁面 以外的圖形。針對(duì)這種需求,公司可以采用( )避免同時(shí)創(chuàng)建這些圖形對(duì)象。
A.代理模式 B.外觀模式 C.橋接模式 D.組合模式
【解析】
本題主要考查設(shè)計(jì)模式的理解與應(yīng)用。根據(jù)題干描述,該編輯器需要在文檔中嵌入顯示 開銷很大的圖形對(duì)象,為了能夠提高系統(tǒng)效率,需要避免同時(shí)創(chuàng)建這些圖像。這對(duì)這些要求, 對(duì)比候選項(xiàng),可以發(fā)現(xiàn)代理模式可以解決直接訪問對(duì)象時(shí)帶來的問題,例如:要訪問的對(duì)象 在遠(yuǎn)程的機(jī)器上;對(duì)象創(chuàng)建開銷很大,或者某些操作需要安全控制,或者需要進(jìn)程外的訪問 等。因此代理模式是最為合適的設(shè)計(jì)模式。
某公司欲開發(fā)一門戶網(wǎng)站,將公司的各個(gè)分公司及辦事處信息進(jìn)行整合?,F(xiàn)決定采用 composite 設(shè)計(jì)模式來實(shí)現(xiàn)公司的組織結(jié)構(gòu)關(guān)系,并設(shè)計(jì)了如圖所示的 UML 類圖。圖 中與 Composite 模式中的 Component 角色相對(duì)應(yīng)的類是( 1 ),與 Composite 角色 相對(duì)應(yīng)的類是( 2 )。
(1) A.Company
B.Finance Department
C.HRDepartment
D.ConcreteCompany
(2) A.Company
B.Finance Department
C.HRDepartment
D.ConcreteCompany
【解析】
本題考查組合模式相關(guān)的知識(shí)。下圖為組合模式的 UML 圖例。與題目給出的圖例進(jìn)行
匹配可得出答案
【答案】A、D。
某軟件公司正在設(shè)計(jì)一個(gè)通用的嵌入式數(shù)據(jù)處理平臺(tái),需要支持各種數(shù)據(jù)處理芯片之間的數(shù)據(jù)傳遞與交換。該平臺(tái)的核心功能之一要求能夠屏蔽芯片之間的數(shù)據(jù)交互,使其耦合松散,并且可以獨(dú)立改變芯片之間的交互過程。針對(duì)上述需求,采用( )最為合適。
A.抽象工廠模式
B.策略模式
C.中介者模式
D.狀態(tài)模式
【解析】
本題主要考查對(duì)設(shè)計(jì)模式的理解和掌握。根據(jù)題干描述,該系統(tǒng)需要能夠支持不同芯片之間的數(shù)據(jù)交互,并能夠獨(dú)立改變芯片之間的數(shù)據(jù)交互過程。這種情況下,可以引入一個(gè)中介層,通過中介層屏蔽不同芯片之間的兩兩交互。根據(jù)上述分析,選項(xiàng)中列舉的設(shè)計(jì)模式中,中介者模式最符合要求。
某軟件公司正在設(shè)計(jì)一個(gè)圖像處理軟件,該軟件需要支持用戶在圖像處理過程中的撤銷和重做等動(dòng)作,為了實(shí)現(xiàn)該功能,采用( )最為合適。
A.單例模式
B.命令模式
C.訪問者模式
D.適配器模式
【解析】
根據(jù)題干描述,系統(tǒng)需要支持用戶在圖像處理過程中的撤銷和重做的動(dòng)作,因此可以將用戶動(dòng)作封裝成對(duì)象,通過對(duì)象之間的傳遞和轉(zhuǎn)換實(shí)現(xiàn)撤銷和重做等動(dòng)作。根據(jù)上述分析,選項(xiàng)中列舉的設(shè)計(jì)模式中,命令模式最符合要求。
某互聯(lián)網(wǎng)公司正在設(shè)計(jì)一套網(wǎng)絡(luò)聊天系統(tǒng),為了限制用戶在使用該系統(tǒng)時(shí)發(fā)表不恰當(dāng)言論,需要對(duì)聊天內(nèi)容進(jìn)行特定敏感詞的過濾。針對(duì)上述功能需求,采用______能夠靈活配置敏感詞的過濾過程。
A.責(zé)任鏈模式
B.工廠模式
C.組合模式
D.裝飾模式
【解析】
本題考查常見設(shè)計(jì)模式的特點(diǎn)。
Abstract Factory(抽象工廠模式):提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無需指定它們具體的類。
Chain of Responsibility:為解除請(qǐng)求的發(fā)送者和接收者之間耦合,而使多個(gè)對(duì)象都有機(jī)會(huì)處理這個(gè)請(qǐng)求。將這些對(duì)象連成一條鏈,并沿著這條鏈傳遞該請(qǐng)求,直到有一個(gè)對(duì)象處理它。
Composite:將對(duì)象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。它使得客戶對(duì)單個(gè)對(duì)象和復(fù)合對(duì)象的使用具有一致性。
Decorator:動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。就擴(kuò)展功能而言, 它比生成子類方式更為靈活。
依據(jù)題意,需要限制用戶在使用聊天系統(tǒng)時(shí)發(fā)表不恰當(dāng)言論,需要對(duì)聊天內(nèi)容進(jìn)行特定敏感詞的過濾,最為關(guān)鍵的一點(diǎn)是需要靈活配置過濾關(guān)鍵字。如果本系統(tǒng)采用責(zé)任鏈模式,即可達(dá)到這一點(diǎn)。
某軟件公司欲設(shè)計(jì)一款圖像處理軟件,幫助用戶對(duì)拍攝的照片進(jìn)行后期處理。在軟件需求分析階段,公司的系統(tǒng)分析師識(shí)別出了如下 3 個(gè)關(guān)鍵需求。
圖像處理軟件需要記錄用戶在處理照片時(shí)所有動(dòng)作,并能夠支持用戶動(dòng)作的撤銷與重做 等行為。
圖像處理軟件需要根據(jù)當(dāng)前正在處理的照片的不同特征選擇合適的處理操作,處理操作 與照片特征之間具有較為復(fù)雜的邏輯關(guān)系。
圖像處理軟件需要封裝各種圖像處理算法,用戶能夠根據(jù)需要靈活選擇合適的處理算 法:軟件還要支持高級(jí)用戶根據(jù)一定的規(guī)則添加自定義處理算法。
在系統(tǒng)設(shè)計(jì)階段,公司的架構(gòu)師決定采用設(shè)計(jì)模式滿足上述關(guān)鍵需求中對(duì)系統(tǒng)靈活性與 擴(kuò)展性的要求。
具體來說,為了支持靈活的撤銷與重做等行為,采用( )最為合適;
為了封 裝圖像操作與照片特征之間的復(fù)雜邏輯關(guān)系,采用( )最為合適;
為了實(shí)現(xiàn)圖像處理算法的 靈活選擇與替換,采用( )最為合適。
A.工廠模式 B.責(zé)任鏈模式 C.中介者模式 D.命令模式
A.狀態(tài)模式 B.適配器模式 C.組合模式 D.單例模式
A.模板方法模式 B.訪問者模式 C.策略模式 D.觀察者模式
【解析】
本題主要考查設(shè)計(jì)模式知識(shí)。題干描述了某軟件公司一款圖像處理軟件的需求分析與設(shè) 計(jì)過程,并明確指出采用設(shè)計(jì)模式實(shí)現(xiàn)關(guān)鍵需求對(duì)系統(tǒng)靈活性與擴(kuò)展性的要求。
針對(duì)需求 1,為了支持靈活的撤銷與重做等行為,采用命令模式最為合適,因?yàn)槊钅?式可以將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化,還可以對(duì) 請(qǐng)求排隊(duì),或記錄請(qǐng)求日志,以及支持可撤消的操作。
針對(duì)需求 2,為了封裝圖像操作與照片特征之間的復(fù)雜邏輯關(guān)系,采用狀態(tài)模式最為合 適,因?yàn)闋顟B(tài)模式將每一個(gè)條件分支放入一個(gè)獨(dú)立的類中,這樣就可以根據(jù)對(duì)象自身的情況 將對(duì)象的狀態(tài)作為一個(gè)對(duì)象,這一對(duì)象可以不依賴于其他對(duì)象而獨(dú)立變化;
針對(duì)需求 3,為了實(shí)現(xiàn)圖像處理算法的靈活選擇與替換,采用策略模式最為合適,因?yàn)?策略模式定義一系列的算法,把它們封裝起來, 并且使它們可相互替換,使得算法可獨(dú)立 于使用它的客戶而變化。
【答案】D、A、C。
若系統(tǒng)中的某子模塊需要為其他模塊提供訪問不同數(shù)據(jù)庫系統(tǒng)的功能,這些數(shù)據(jù)庫系統(tǒng) 提供的訪問接口有一定的差異,但訪問過程卻都是相同的,例如,先連接數(shù)據(jù)庫,再打 開數(shù)據(jù)庫,最后對(duì)數(shù)據(jù)進(jìn)行查詢。針對(duì)上述需求,可以采用( )設(shè)計(jì)模式抽象出相同的 數(shù)據(jù)庫訪問過程,該設(shè)計(jì)模式( )。
(1)A.外觀 B.裝飾 C.橋接 D.享元
(2)A.可以動(dòng)態(tài)、透明地給單個(gè)對(duì)象添加職責(zé)
B.為子系統(tǒng)定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用
C.通過運(yùn)用共享技術(shù),有效支持大量細(xì)粒度的對(duì)象
D.將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化
【解析】
外觀(fa?ade)模式是對(duì)象的結(jié)構(gòu)模式,要求外部與一個(gè)子系統(tǒng)的通信必須通過一個(gè)統(tǒng)一 的外觀對(duì)象進(jìn)行,為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,外觀模式定義了一個(gè)高層接 口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。
【答案】A、B。
擴(kuò)展:這個(gè)題本身出題有問題,這個(gè)場(chǎng)景最合適的,其實(shí)是模板方法,因?yàn)楣潭肆鞒?但沒有固定里面的內(nèi)容。但給出的選項(xiàng)中,沒有這個(gè)選項(xiàng),所以已然沒有最合適的了。也就 這個(gè)原因才選到 A。其實(shí)如果說外觀也算能行,用橋接也是可以的。把過程作為抽象,把里 面要處理的內(nèi)容作為實(shí)現(xiàn)部分。
某系統(tǒng)中的文本顯示類( TextView )和圖片顯示類( PictureView )都繼承了組件類 ( Component ),分別顯示文本和圖片內(nèi)容,現(xiàn)需要構(gòu)造帶有滾動(dòng)條或者帶有黑色邊框, 或者既有滾動(dòng)條又有黑色邊框的文本顯示控件和圖片顯示控件,但希望最多只增加 3 個(gè)類。那么采用設(shè)計(jì)模式( )可實(shí)現(xiàn)該需求,其優(yōu)點(diǎn)是( )。
(1)A.外觀 B.單體 C.裝飾 D.模板方法
(2)A.比靜態(tài)繼承具有更大的靈活性
B.提高已有功能的重復(fù)使用性 C.可以將接口與實(shí)現(xiàn)相分離 D.為復(fù)雜系統(tǒng)提供了簡(jiǎn)單接口
【解析】
裝飾模式:動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)。它提供了用子類擴(kuò)展功能的一個(gè)靈 活的替代,比派生一個(gè)子類更加靈活。
在本題中,“現(xiàn)需要構(gòu)造帶有滾動(dòng)條或者帶有黑色邊框,或者既有滾動(dòng)條又有黑色邊框 的文本顯示控件和圖片顯示控件”,從此處可以看出需要能為構(gòu)件靈活附加功能的機(jī)制,這 與裝飾模式的情況是吻合的。這樣做比靜態(tài)繼承具有更大的靈活性。
一組對(duì)象以定義良好但是復(fù)雜的方式進(jìn)行通信,產(chǎn)生的相互依賴關(guān)系結(jié)構(gòu)混亂且難以理 解。采用( )模式,用一個(gè)特定對(duì)象來封裝一系列的對(duì)象交互,從而使各對(duì)象不需要顯 式地相互引用,使其耦合松散,而且可以獨(dú)立地改變它們之間的交互。
A.解釋器(Interpreter) B.策略(Strategy) C.中介者(Mediator) D.迭代器(Iterator)
【解析】
解釋器(interpreter)模式。解釋器模式屬于類的行為型模式,描述了如何為語言定義一個(gè) 文法,如何在該語言中表示一個(gè)句子,以及如何解釋這些句子,這里的“語言”是使用規(guī)定 格式和語法的代碼。解釋器模式主要用在編譯器中,在應(yīng)用系統(tǒng)開發(fā)中很少用到。
策略(strategy)模式。策略模式是一種對(duì)象的行為型模式,定義一系列算法,并將每一個(gè) 算法封裝起來,并讓它們可以相互替換。策略模式讓算法獨(dú)立于使用它的客戶而變化,其目 的是將行為和環(huán)境分隔,當(dāng)出現(xiàn)新的行為時(shí),只需要實(shí)現(xiàn)新的策略類。
中介者(mediator)模式。中介者模式是一種對(duì)象的行為型模式,通過一個(gè)中介對(duì)象來封 裝一系列的對(duì)象交互。中介者使得各對(duì)象不需要顯式地相互引用,從而使其耦合松散,而且 可以獨(dú)立地改變它們之間的交互。中介者對(duì)象的存在保證了對(duì)象結(jié)構(gòu)上的穩(wěn)定,也就是說, 系統(tǒng)的結(jié)構(gòu)不會(huì)因?yàn)樾聦?duì)象的引入帶來大量的修改工作。
迭代器(iterator)模式。迭代器模式是一種對(duì)象的行為型模式,提供了一種方法來訪問聚 合對(duì)象,而不用暴露這個(gè)對(duì)象的內(nèi)部表示。迭代器模式支持以不同的方式遍歷一個(gè)聚合對(duì)象, 復(fù)雜的聚合可用多種方法來進(jìn)行遍歷;允許在同一個(gè)聚合上可以有多個(gè)遍歷,每個(gè)迭代器保 持它自己的遍歷狀態(tài),因此,可以同時(shí)進(jìn)行多個(gè)遍歷操作。
擴(kuò)展:設(shè)計(jì)模式分類:創(chuàng)建型模式、結(jié)構(gòu)型模式、行為型模式。
某廣告公司的宣傳產(chǎn)品有宣傳冊(cè)、文章、傳單等多種形式,宣傳產(chǎn)品的出版方式包括紙 質(zhì)方式、CD、DVD、在線發(fā)布等?,F(xiàn)要求為該廣告公司設(shè)計(jì)一個(gè)管理這些宣傳產(chǎn)品的 應(yīng)用,采用( )設(shè)計(jì)模式較為合適,該模式()。
(1)A.Decorator B.Adapter C.Bridge D.Facade
(2)A.將一系列復(fù)雜的類包裝成一個(gè)簡(jiǎn)單的封閉接口
B.將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化 C.可在不影響其他對(duì)象的情況下,以動(dòng)態(tài)、透明的方式給單個(gè)對(duì)象添加職責(zé) D.將一個(gè)接口轉(zhuǎn)換為客戶希望的另一個(gè)接口
【解析】
本題考點(diǎn)是設(shè)計(jì)模式,不同的設(shè)計(jì)模式可以應(yīng)用于不同的場(chǎng)景,在本題題干部分提到宣 傳產(chǎn)品有多種表現(xiàn)形式,又有多種媒介,如果用一棵類樹來表達(dá),必然會(huì)帶來“類爆炸”(題 目中增加一種媒介,代碼實(shí)現(xiàn)中需要增加多個(gè)類)的問題,所以使用橋接模式是合適的。橋 接模式的最核心特點(diǎn)便是:將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。
某軟件公司欲開發(fā)一個(gè)繪圖軟件,要求使用不同的繪圖程序繪制不同的圖形。在明確用戶需求后,該公司的架構(gòu)師決定采用 Bridge 模式實(shí)現(xiàn)該軟件,并設(shè)計(jì) UML 類圖如下圖所示。圖中與 Bridge 模式中的 Abstraction 角色相對(duì)應(yīng)的類是(),與 Implementor 角色相對(duì)應(yīng)的類是( )。
A.Shape B.Drawing C.Rectangle D.V2Drawing
A.Shape B.Drawing C.Rectangle D.V2Drawing
【解析】
橋接模式將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化。它是一種對(duì)象結(jié)構(gòu)型模式,又稱為柄體(Handle and Body)模式或接口(Interface)模式。橋接模式類似于多重繼承方案,但是多重繼承方案往往違背了類的單一職責(zé)原則,其復(fù)用性比較差,橋接模式是比多重繼承方案更好的解決方法。
橋接模式的結(jié)構(gòu)如下圖所示,其中:
圖中與 Bridge 模式中的“Abstraction”角色相對(duì)應(yīng)的類是 Shape,與“Implementor”角
色相對(duì)應(yīng)的類是 Drawing。 【答案】:A、B。
在面向?qū)ο笤O(shè)計(jì)的原則中、( )原則是指抽象不應(yīng)該依賴予細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象,即應(yīng)針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程。
A.開閉 B.里氏替換 C.最少知識(shí) D.依賴倒置
【解析】
單一職責(zé)原則:設(shè)計(jì)目的單一的類。
開放-封閉原則:對(duì)擴(kuò)展開放,對(duì)修改封閉。
李氏(Liskov)替換原則:子類可以替換父類。
依賴倒置原則:要依賴于抽象,而不是具體實(shí)現(xiàn);針對(duì)接口編程,不要針對(duì)實(shí)現(xiàn)編程。
接口隔離原則:使用多個(gè)專門的接口比使用單一的總接口要好。
組合重用原則:要盡量使用組合,而不是繼承關(guān)系達(dá)到重用目的。
迪米特(Demeter)原則(最少知識(shí)法則):一個(gè)對(duì)象應(yīng)當(dāng)對(duì)其他對(duì)象有盡可能少的了解。
設(shè)計(jì)模式基于面向?qū)ο蠹夹g(shù),是人們?cè)陂L(zhǎng)期的開發(fā)實(shí)踐中良好經(jīng)驗(yàn)的結(jié)晶,提供了一個(gè) 簡(jiǎn)單、統(tǒng)一的描述方法,使得人們可以復(fù)用這些軟件設(shè)計(jì)辦法、過程管理經(jīng)驗(yàn)。按照設(shè) 計(jì)模式的目的進(jìn)行劃分,現(xiàn)有的設(shè)計(jì)模式可以分為創(chuàng)建型、( )和行為型三種類型。 其中( )屬于創(chuàng)建型模式,( )屬于行為型模式。( )模式可以將一個(gè)復(fù)雜的組件 分成功能性抽象和內(nèi)部實(shí)現(xiàn)兩個(gè)獨(dú)立的但又相關(guān)的繼承層次結(jié)構(gòu),從而可以實(shí)現(xiàn)接口與 實(shí)現(xiàn)分離。
A.合成型 B.組合型 C.結(jié)構(gòu)型 D.聚合型
A.Adaptor B.Facade C.Command D.Singleton
A.Decorator B.Composite C.Memento D.Builder
A.Prototype B.Flyweight C.Adapter D.Bridge
設(shè)計(jì)模式包括:創(chuàng)建型、結(jié)構(gòu)型、行為型三大類別。 Singleton 是單例模式,屬于創(chuàng)建型設(shè)計(jì)模式。 Memento 是備忘錄模式,屬于行為型設(shè)計(jì)模式。 Bridge 是橋接模式,它的特點(diǎn)是實(shí)現(xiàn)接口與實(shí)現(xiàn)分離
按照設(shè)計(jì)模式的目的進(jìn)行劃分,現(xiàn)有的設(shè)計(jì)模式可以分為三類。其中創(chuàng)建型模式通過采用抽象類所定義的接 口,封裝了系統(tǒng)中對(duì)象如何創(chuàng)建、組合等信息,其代表有( )模式等;( )模式主要用于如何組合己有的類 和對(duì)象以獲得更大的結(jié)構(gòu),其代表有 Adapter 模式等;( )模式主要用于對(duì)象之間的職責(zé)及其提供服務(wù)的分 配方式,其代表有( )模式等。
A.Decorator B.Flyweight C.Command D.Singleton
A.合成型 B.組合型 C.結(jié)構(gòu)型 D.聚合型
A.行為型 B.交互型 C.耦合性 D.關(guān)聯(lián)型
A.Prototype B.Facade C.Proxy D.Visitor
【解析】
設(shè)計(jì)模式包括:創(chuàng)建型、結(jié)構(gòu)型、行為型三大類別。 Singleton 是單例模式,屬于創(chuàng)建型設(shè)計(jì)模式。 Adapter 是適配器模式,屬于結(jié)構(gòu)型設(shè)計(jì)模式。
Visitor 是訪問者模式,屬于行為型設(shè)計(jì)模式。 【答案】D、C、A、B。
設(shè)計(jì)模式描述了一個(gè)出現(xiàn)在特定設(shè)計(jì)語境中的設(shè)計(jì)再現(xiàn)問題,并為它的解決方案提供了 一個(gè)經(jīng)過充分驗(yàn)證的通用方案,不同的設(shè)計(jì)模式關(guān)注解決不同的問題。例如,抽象工廠 模式提供一個(gè)接口,可以創(chuàng)建一系列相關(guān)或相互依賴的對(duì)象,而無需指定它們具體的類, 它是一種(54)模式;(55)模式將類的抽象部分和它的實(shí)現(xiàn)部分分離出來,使它們可 以獨(dú)立變化,它屬于(56)模式;(57)模式將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而可用不 同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化,將請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,支持可撤銷的操作。
(54)A. 組合型 B. 結(jié)構(gòu)型 C. 行為型 D. 創(chuàng)建型
(55)A. Bridge B. Proxy C. Prototype D. Adapter
(56)A. 組合型 B. 結(jié)構(gòu)型 C. 行為型 D. 創(chuàng)建型
(57) A. Command B. Facade C. Memento D. Visitor
【解析】
抽象工廠模式是一種類創(chuàng)建型模式。
橋接模式(Bridge)-將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立地變化,它是一種 對(duì)象結(jié)構(gòu)型模式。
命令(Command)模式將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而可用不同的請(qǐng)求對(duì)客戶進(jìn)行 參數(shù)化,將請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,支持可撤銷的操作。
答案 DABA。