2024架構(gòu)整潔之道理論考核試題及答案_第1頁
2024架構(gòu)整潔之道理論考核試題及答案_第2頁
2024架構(gòu)整潔之道理論考核試題及答案_第3頁
2024架構(gòu)整潔之道理論考核試題及答案_第4頁
2024架構(gòu)整潔之道理論考核試題及答案_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

架構(gòu)整潔之道理論考核試題一、選擇題1.為了避免多人為了不同的目標(biāo)修改同一份源代碼,我們應(yīng)該采取哪種方法()[單選題]*A、不復(fù)用別人的代碼,自己重新寫一份B、將服務(wù)不同行為者的代碼進(jìn)行切分√C、鎖定文件,不讓其他人修改D、誰最后修改了代碼誰負(fù)責(zé)2.將服務(wù)不同行為者的代碼進(jìn)行切分的方法,以下說法錯(cuò)誤的是()[單選題]*A、將數(shù)據(jù)與函數(shù)分離B、使用fa?ade(外觀)模式C、將重要的函數(shù)留在類中,同時(shí)使用這個(gè)類調(diào)用其他沒那么重要的函數(shù)D、每個(gè)開發(fā)人員寫自己的類,互不影響√3.SRP原則是什么原則()[單選題]*A、單一職責(zé)原則√B、開閉原則C、里氏替換原則D、接口隔離原則4.OCP原則是什么原則()[單選題]*A、單一職責(zé)原則B、開閉原則√C、里氏替換原則D、接口隔離原則5.LSP原則是什么原則()[單選題]*A、單一職責(zé)原則B、開閉原則C、里氏替換原則√D、接口隔離原則6.ISP原則是什么原則()[單選題]*A、單一職責(zé)原則B、開閉原則C、里氏替換原則D、接口隔離原則√7.DIP原則是什么原則()[單選題]*A、單一職責(zé)原則B、開閉原則C、里氏替換原則D、接口隔離原則E、依賴反轉(zhuǎn)原則√8.一個(gè)好的架構(gòu)在新增功能時(shí)應(yīng)該將舊代碼的修改需求量降至最小,我們首先應(yīng)該做的是()[單選題]*A、將不同需求的代碼分組√B、調(diào)整不同分組代碼的依賴關(guān)系C、抽象業(yè)務(wù)接口,實(shí)現(xiàn)不同的子類D、設(shè)計(jì)數(shù)據(jù)表結(jié)構(gòu)9.如果A,B組件存在依賴關(guān)系,A組件不想被B組件上發(fā)生的修改所影響,應(yīng)該()[單選題]*A、應(yīng)該讓A組件依賴于B組件B、應(yīng)該讓B組件依賴于A組件√C、應(yīng)該讓A,B組件相互依賴D、切斷A,B組件的依賴關(guān)系10.在系統(tǒng)架構(gòu)中,最符合OCP(開閉)原則的是()[單選題]*A、Controller(控制)層B、Service(服務(wù))層C、View(展示)層D、Interface層√11.假設(shè)有一個(gè)L類,該類有個(gè)calcFee方法由Billing類調(diào)用,L類有兩個(gè)子類分別實(shí)現(xiàn)了calcFee方法,上述設(shè)計(jì)符合什么設(shè)計(jì)原則[單選題]*A、單一職責(zé)原則B、開閉原則C、里氏替換原則√D、接口隔離原則12.有一個(gè)矩形類L存在setH,setW兩個(gè)方法,他有一個(gè)正方形子類S存在一個(gè)setSide方法,該設(shè)計(jì)違反了哪個(gè)設(shè)計(jì)原則()[單選題]*A、單一職責(zé)原則B、開閉原則C、里氏替換原則√D、接口隔離原則13.LSP可以且應(yīng)該被應(yīng)用與軟件架構(gòu)層面,因?yàn)橐坏┻`背了()性,該系統(tǒng)架構(gòu)就不得不為此增添大量復(fù)雜的應(yīng)對機(jī)制[單選題]*A、可替代性√B、依賴性C、隔離性D、唯一性14.任何層次的軟件設(shè)計(jì)如果依賴于不需要的東西,就會帶來意料之外的麻煩,屬于()設(shè)計(jì)原則[單選題]*A、單一職責(zé)原則B、開閉原則C、里氏替換原則D、接口隔離原則√15.對于那個(gè)語言來說需要程序員顯式的import,use或include其功能所需要的源代碼[單選題]*A、java√B、rubyC、pythonD、JavaScript16.OCP使我們進(jìn)行系統(tǒng)架構(gòu)設(shè)計(jì)的主導(dǎo)原則,目標(biāo)是讓系統(tǒng)()[單選題]*A、易于擴(kuò)展√B、組件分離C、依賴控制D、接口隔離17.OCP設(shè)計(jì)實(shí)現(xiàn)方式不包括一下哪個(gè)()[單選題]*A、將系統(tǒng)劃分為一系列組件B、將組件間的依賴關(guān)系按層次結(jié)構(gòu)進(jìn)行組織C、高階組件不會因?yàn)榈碗A組件被修改而受影響D、設(shè)計(jì)組件的可替換性√18.依賴反轉(zhuǎn)原則告訴我們,如果想設(shè)計(jì)一個(gè)靈活的系統(tǒng),在源碼層次的依賴關(guān)系中應(yīng)該()[單選題]*A、引用抽象類型√B、引用具體實(shí)現(xiàn)C、引用其他工具類D、寫高質(zhì)量代碼19.如果想要在軟件架構(gòu)上追求穩(wěn)定,就必須多使用穩(wěn)定的抽象接口,少依賴多變的具體實(shí)現(xiàn)類,以下說法不正確的是[單選題]*A、應(yīng)在代碼中多使用抽象接口,避免使用那些多變的具體實(shí)現(xiàn)B、不要在具體實(shí)現(xiàn)類上創(chuàng)建衍生類C、不要覆蓋包含具體實(shí)現(xiàn)的函數(shù)D、以上均不正確√20.設(shè)計(jì)良好的計(jì)算機(jī)軟件應(yīng)該()擴(kuò)展,同時(shí)()修改。[單選題]*A、利于、避免B、利于、抗拒C、易于、避免D、易于、抗拒√21.()的出現(xiàn)使得插件式架構(gòu)可以在任何地方被安全的使用[單選題]*A、結(jié)構(gòu)化編程B、面向?qū)ο缶幊獭藽、函數(shù)式編程D、響應(yīng)式編程22.下列需求開發(fā)過程中的觀念正確的是()[單選題]*A、我們可以未來再重構(gòu)代碼,產(chǎn)品上線最重要B、在工程中容忍糟糕的代碼存在可以短期內(nèi)加快該工程上線的速度,未來這些代碼會造成一些額外的工作量但是并沒有什么大不了C、對于一個(gè)亂麻系統(tǒng)挽救的唯一辦法就是拋棄現(xiàn)有系統(tǒng),設(shè)計(jì)一個(gè)全新的系統(tǒng)來替代D、采用循規(guī)蹈矩的方式編寫代碼√23.軟件系統(tǒng)應(yīng)該容易被修改,體現(xiàn)的是下列哪個(gè)價(jià)值[單選題]*A、行為價(jià)值B、架構(gòu)價(jià)值√C、產(chǎn)品價(jià)值D、程序員價(jià)值24.結(jié)構(gòu)化編程對程序控制權(quán)的()進(jìn)行了限制和規(guī)范[單選題]*A、間接轉(zhuǎn)移B、強(qiáng)制轉(zhuǎn)移C、直接轉(zhuǎn)移√D、獲取25.面向?qū)ο缶幊虒Τ绦蚩刂茩?quán)的()進(jìn)行了限制和規(guī)范[單選題]*A、間接轉(zhuǎn)移√B、強(qiáng)制轉(zhuǎn)移C、直接轉(zhuǎn)移D、獲取26.函數(shù)式編程對程序中的()進(jìn)行限制和規(guī)范[單選題]*A、賦值√B、轉(zhuǎn)移C、跳轉(zhuǎn)D、返回27.()是我們跨越架構(gòu)邊界的手段[單選題]*A、封裝B、繼承C、多態(tài)√D、面向?qū)ο缶幊?8.()是我們規(guī)范和限制數(shù)據(jù)存放位置和訪問權(quán)限的手段[單選題]*A、結(jié)構(gòu)化編程B、面向?qū)ο缶幊藽、函數(shù)式編程√D、響應(yīng)式編程29.()是各模塊的算法實(shí)現(xiàn)基礎(chǔ)[單選題]*A、面向?qū)ο缶幊藼、結(jié)構(gòu)化編程√C、函數(shù)式編程D、響應(yīng)式編程30.結(jié)構(gòu)化編程范式可將()遞歸降解拆分為可推導(dǎo)的單元[單選題]*A、程序B、類C、函數(shù)D、模塊√31.結(jié)構(gòu)化編程范式最有價(jià)值的地方就是,它賦予了我們創(chuàng)造()的能力[單選題]*A、可證明程序單元B、最簡潔代碼C、可證偽程序單元√D、最直觀代碼32.()就是以多態(tài)為手段來對源代碼中的依賴關(guān)系進(jìn)行控制的能力,這種能力讓軟件架構(gòu)師可以構(gòu)建出某種插件式架構(gòu)[單選題]*A、結(jié)構(gòu)化編程B、面向?qū)ο缶幊獭藽、函數(shù)式編程D、響應(yīng)式編程33.()的變量是不可變的[單選題]*A、結(jié)構(gòu)化編程B、面向?qū)ο缶幊藽、函數(shù)式編程√D、響應(yīng)式編程34.一個(gè)架構(gòu)設(shè)計(jì)良好的應(yīng)用程序應(yīng)該將狀態(tài)修改的部分和不需要修改狀態(tài)的部分隔離成單獨(dú)的(),然后用合適的機(jī)制來保護(hù)可變量[單選題]*A、類B、函數(shù)C、模塊D、組件√35.軟件架構(gòu)師應(yīng)該著力于將大部分處理邏輯都?xì)w于不可變組件中,可變狀態(tài)組件的邏輯應(yīng)該()[單選題]*A、越多越好B、越少越好√C、越靈活越好D、越簡單越好36.C語言是下面哪種類型的編程語言[單選題]*A、面向?qū)ο缶幊藼、結(jié)構(gòu)化編程√C、函數(shù)式編程D、響應(yīng)式編程37.下列哪項(xiàng)體現(xiàn)了依賴反轉(zhuǎn)的思想[單選題]*A、某適配對象依賴于適配器接口的抽象√B、業(yè)務(wù)服務(wù)調(diào)用數(shù)據(jù)庫組件C、業(yè)務(wù)服務(wù)依賴公共基礎(chǔ)模塊D、高層函數(shù)調(diào)用中層函數(shù)38.面向?qū)ο缶幊淌且裕ǎ槭侄蝸韺υ创a中的依賴關(guān)系進(jìn)行控制[單選題]*A、封裝B、繼承C、多態(tài)√D、依賴反轉(zhuǎn)39.LISP是下列哪種編程語言[單選題]*A、結(jié)構(gòu)化編程B、面向?qū)ο缶幊藽、函數(shù)式編程√D、響應(yīng)式編程40.JAVA中某個(gè)父類統(tǒng)一操作或方法在不同對象實(shí)例上具有不同的行為,體現(xiàn)的是[單選題]*A、多態(tài)√B、繼承C、封裝D、依賴反轉(zhuǎn)41.關(guān)于編程范式,以下說法不正確的是()[單選題]*A、結(jié)構(gòu)化編程是對程序控制權(quán)直接轉(zhuǎn)移的限制B、面向?qū)ο缶幊淌菍Τ绦蚩刂茩?quán)間接轉(zhuǎn)移的控制C、函數(shù)式編程是對程序中賦值操作的限制D、面向?qū)ο缶幊淌菍Τ绦蚩刂茩?quán)直接轉(zhuǎn)移的控制√42.關(guān)于設(shè)計(jì)和架構(gòu),以下說法正確的是()[單選題]*A、我們可以未來再重構(gòu)代碼,產(chǎn)品上線最重要B、在工程中可以容忍少許的糟糕代碼C、要想跑得快,先要跑的穩(wěn)√D、循規(guī)蹈矩的工作速度長遠(yuǎn)來看比胡編亂寫的速度會慢43.軟件架構(gòu)的終極目的是()[單選題]*A、用最小的人力成本來滿足構(gòu)建和維護(hù)該系統(tǒng)的需求√B、在開始研發(fā)一個(gè)產(chǎn)品之前就能確定軟件設(shè)計(jì)過程中的所有細(xì)節(jié)C、用最少的人力和時(shí)間成本完成一個(gè)產(chǎn)品的交付D、使當(dāng)前軟件的系統(tǒng)架構(gòu)在行業(yè)內(nèi)處于領(lǐng)先水平44.關(guān)于軟件系統(tǒng)的價(jià)值維度,以下說法不正確的是()[單選題]*A、系統(tǒng)行為緊急不重要B、架構(gòu)行為重要不緊急C、程序員的工作就是編寫程序,給用戶創(chuàng)造或者提高利潤D、軟件變更的難度應(yīng)該和變更的具體形狀成等比關(guān)系√45.軟件開發(fā)過程中常常發(fā)生系統(tǒng)架構(gòu)和系統(tǒng)功能行為相沖突,()來平衡這兩件事的緊急程度?[單選題]*A、部門主管或更上級領(lǐng)導(dǎo)B、產(chǎn)品經(jīng)理或項(xiàng)目經(jīng)理C、最終用戶D、研發(fā)人員√46.某項(xiàng)目組在開發(fā)一款軟件過程中,忽略了軟件架構(gòu)的價(jià)值,導(dǎo)致最終交付系統(tǒng)幾乎無法更改和維護(hù)??偨Y(jié)經(jīng)驗(yàn)和教訓(xùn)時(shí),應(yīng)該判定是()需要改進(jìn)[單選題]*A、測試B、軟件開發(fā)√C、需求方D、產(chǎn)品經(jīng)理或項(xiàng)目經(jīng)理47.究竟什么是面向?qū)ο??以下說話比較貼切的是()[單選題]*A、是一種對真實(shí)世界進(jìn)行建模的方式B、數(shù)據(jù)與函數(shù)的組合C、是封裝、繼承、多態(tài)的有機(jī)組合√D、以多態(tài)的手段來對源代碼中的依賴關(guān)系進(jìn)行控制的能力48.我們可以用三種結(jié)構(gòu)構(gòu)造出任何程序,這三種結(jié)構(gòu)不包含哪種()[單選題]*A、遞歸結(jié)構(gòu)√B、順序結(jié)構(gòu)C、循環(huán)結(jié)構(gòu)D、分支結(jié)構(gòu)49.結(jié)構(gòu)化編程賦予了我們創(chuàng)造可證偽程序單元的能力,()仍然是結(jié)構(gòu)化編程的最佳實(shí)踐之一[單選題]*A、推導(dǎo)B、功能性降解拆分√C、多態(tài)D、繼承50.在《架構(gòu)整潔之道》這本書中,DIP是以下哪個(gè)選項(xiàng)的縮寫?[單選題]*A、DependencyInjectionPrincipleB、DigitalIntegrationPlatformC、DependencyInversionPrinciple√D、DocumentImageProcessing51.以下符合依賴反轉(zhuǎn)原則(DIP)做法的是?[單選題]*A、因?yàn)轭愔凶侄螞]有提供set方法,使用反射修改這個(gè)字段的值B、兩個(gè)類C1,C2存在相互依賴,抽象出IC1,IC2接口,使得C1,C2分別依賴于IC1,IC2接口,而不相互依賴√C、系統(tǒng)新增一個(gè)功能與現(xiàn)有類C1的功能類似,通過繼承類C1,減少重復(fù)代碼D、在代碼中將對象強(qiáng)制轉(zhuǎn)換成實(shí)際類型的對象,從而取得對對象更多的控制52.以下哪種生活/工作場景,與依賴反轉(zhuǎn)原則(DIP)具有相似性[單選題]*A、領(lǐng)導(dǎo)將任務(wù)交代給一個(gè)團(tuán)隊(duì)來完成,而不是指定團(tuán)隊(duì)中的某個(gè)人來完成√B、“如果我這邊信息有變動(dòng),我會主動(dòng)通知到您”C、將專業(yè)的事情交給專業(yè)的人負(fù)責(zé)D、外部對接部門行政事務(wù)負(fù)責(zé)人,然后由部門負(fù)責(zé)人去對接內(nèi)部人員53.運(yùn)用依賴反轉(zhuǎn)原則(DIP)的原因是[單選題]*A、接口或抽象類一般比其實(shí)現(xiàn)類更穩(wěn)定√B、實(shí)現(xiàn)類允許繼承(實(shí)現(xiàn))多個(gè)接口,有些接口我們用不到C、實(shí)現(xiàn)類一般都比較復(fù)雜,而接口往往比較簡單D、實(shí)現(xiàn)類的對象不能被運(yùn)行時(shí)增強(qiáng)54.關(guān)于單一職責(zé)原則(SRP)的描述正確的是()[單選題]*A、不同行為者所依賴的代碼可以放在一個(gè)類里面進(jìn)行封裝B、解決同一個(gè)類不同行為者修改方法的方式是將代碼合并之后,解決當(dāng)前沖突;C、任何一個(gè)軟件模塊都應(yīng)該只對某一類行為者負(fù)責(zé)√D、不同行為者所依賴的代碼放到一起,當(dāng)一個(gè)行為者修改代碼之后,代碼沒有沖入,不會對其他行為者使用產(chǎn)生影響;55.在工作中,經(jīng)常遇到同一個(gè)service實(shí)現(xiàn)類方法由于不同需求變更,多個(gè)團(tuán)隊(duì)需要修改,當(dāng)出現(xiàn)沖突的時(shí)候,最好的解決辦法是?[單選題]*A、不管別人調(diào)用,僅修改自己的功能,滿足自己的需求即可;B、代碼合并,解決沖突,只驗(yàn)證自己的功能;C、重構(gòu)當(dāng)前方法,將不同行為的者的代碼進(jìn)行拆分,使其軟件模塊只對一類行為負(fù)責(zé);√D、為了避免沖突,自己先提交代碼,驗(yàn)證功能,不管其他團(tuán)隊(duì);56.下面關(guān)于單一職責(zé)原則描述正確的是?[單選題]*A、單一職責(zé)主要討論的是函數(shù)和類之間的關(guān)系,但是在兩個(gè)討論層面上會議不同形式出現(xiàn)√B、同一個(gè)軟件模塊可以有多個(gè)被修改的原因C、同一個(gè)軟件模塊允許有多個(gè)行為者共同負(fù)責(zé)D、同一個(gè)軟件模塊可以有多個(gè)系統(tǒng)利益相關(guān)者57.下面哪一項(xiàng)不能體現(xiàn)了里氏替換原則(LSP)?[單選題]*A、用戶行為可以依賴他所使用的類,并且這些類可以不用相互替換√B、用戶可以調(diào)用授權(quán)L類計(jì)算授權(quán)費(fèi)用方法進(jìn)行授權(quán)付費(fèi),并且該授權(quán)類有兩個(gè)衍生類A和B,這兩個(gè)類會用不同算法來計(jì)算授權(quán)費(fèi)用,這樣是符合里氏替換原則的C、對于每個(gè)類型是S的對象o1都存在一個(gè)類型為T的對象o2,能使操作T類型的程序P在用o2替換o1時(shí)行為保持不變,可以將S稱為T的子類型D、一個(gè)軟件實(shí)體如果使用的是一個(gè)基類的話,那么一定適用于其子類,而且它根本不能察覺出基類對象和子類對象的區(qū)別58.以下哪一項(xiàng)不能體現(xiàn)里氏替換原則四層含義?[單選題]*A、子類必須完全實(shí)現(xiàn)父類的方法B、子類不能有自己的個(gè)性√C、覆蓋或?qū)崿F(xiàn)父類的方法時(shí),輸入?yún)?shù)可以被放大D、覆寫或?qū)崿F(xiàn)父類的方法時(shí)輸出結(jié)果可以被縮小59.以下父類方法、子類方法(或返回方法)不符合里氏替換原則的是?[單選題]*A、父類方法func(HashMapmap);子類方法func(Mapmap);B、父類方法func(inta);子類方法newFunc(inta);C、父類方法publicabstractMapfun();子類方法publicHashMapfun(){};D、父類方法func(Mapmap);子類方法func(HashMapmap)√60.設(shè)計(jì)模式六大原則中,接口隔離原則的簡稱是哪個(gè)?[單選題]*A、OCPB、LSPC、ISP√D、DIP61.關(guān)于接口隔離原則,以下敘述有誤的是()[單選題]*A、在系統(tǒng)設(shè)計(jì)時(shí),客戶端不應(yīng)該依賴那些它不需要的接口B、當(dāng)一個(gè)接口太大時(shí),需要將它分割成一些更細(xì)小的接口,使用該接口的客戶端類僅需知道與之相關(guān)的方法即可C、接口應(yīng)該盡量細(xì)化,同時(shí)接口中的方法應(yīng)該盡可能少,理想情況下是在每個(gè)接口中只定義一個(gè)方法,該接口使用起來最為方便√D、一個(gè)接口只代表一個(gè)角色,每個(gè)角色都有它特定的一個(gè)接口62.OCP是我們進(jìn)行系統(tǒng)架構(gòu)設(shè)計(jì)的主導(dǎo)原則,其主要目標(biāo)是()[單選題]*A、讓系統(tǒng)易于擴(kuò)展,同時(shí)限制其每次被修改所影響的范圍√B、所有功能組件化C、便于代碼的修改,同時(shí)不增加新的子類D、以上都不是63.以下對開閉原則的描述錯(cuò)誤的是()[單選題]*A、開閉原則與“對可變形的封裝原則”沒有相似性√B、找到一個(gè)系統(tǒng)的可變元素,將它封裝起來,叫開閉原則C、對修改關(guān)閉,是其原則之一D、從抽象層導(dǎo)出一個(gè)或多個(gè)新的具體類可以改變系統(tǒng)的行為,是其原則之一64.開閉原則的含義是一個(gè)軟件實(shí)體()[單選題]*A、應(yīng)當(dāng)對修改開放,對擴(kuò)展關(guān)閉B、應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉√C、應(yīng)當(dāng)對繼承開放,對修改關(guān)閉D、以上都不對65.開閉原則的實(shí)現(xiàn)方式是()[單選題]*A、先調(diào)整各類之間的依賴關(guān)系,再對各類進(jìn)行分組(SRP)B、通過分析系統(tǒng)之間的依賴關(guān)系,抽離公共的邏輯,所有修改集中在一個(gè)范圍中,使得其它邏輯不需要進(jìn)行修改C、通過將系統(tǒng)劃分為一系列組件,并且將這些組件間的依賴關(guān)系按層次結(jié)構(gòu)進(jìn)行組織,使得高階組件不會因低階組件被修改而受到影響√D、以上都不對66.SOLID五大設(shè)計(jì)原則包括哪五大原則()[多選題]*A、單一職責(zé)原則√B、開閉原則√C、里氏替換原則√D、接口隔離原則√E、依賴反轉(zhuǎn)原則√67.將服務(wù)不同行為者的代碼進(jìn)行切分的方法,以下說法正確的是()[多選題]*A、將數(shù)據(jù)與函數(shù)分離√B、使用fa?ade(外觀)模式√C、將重要的函數(shù)留在類中,同時(shí)使用這個(gè)類調(diào)用其他沒那么重要的函數(shù)√D、每個(gè)開發(fā)人員寫自己的類,互不影響68.對于那個(gè)語言來說不需要程序員顯式的import,use或include其功能所需要的源代碼()[多選題]*A、javaB、ruby√C、python√D、JavaScript√69.為了避免多人為了不同的目標(biāo)修改同一份源代碼,我們應(yīng)該采取哪種方法,以下說法不正確的是()[多選題]*A、不復(fù)用別人的代碼,自己重新寫一份√B、將服務(wù)不同行為者的代碼進(jìn)行切分C、鎖定文件,不讓其他人修改√D、誰最后修改了代碼誰負(fù)責(zé)√70.一個(gè)好的架構(gòu)在新增功能時(shí)應(yīng)該將舊代碼的修改需求量降至最小,我們應(yīng)該做的是()[多選題]*A、將不同需求的代碼分組√B、調(diào)整不同分組代碼的依賴關(guān)系√C、開發(fā)足夠多的的工具類D、設(shè)計(jì)數(shù)據(jù)表結(jié)構(gòu)71.在軟件架構(gòu)設(shè)計(jì)中為什么Interactor會放在重要位置()[多選題]*A、他是程序的業(yè)務(wù)邏輯所在之處√B、包含了其最高層的應(yīng)用策略√C、其他組件都只是負(fù)責(zé)處理周邊的輔助邏輯√D、Interactor是核心組件√72.依賴反轉(zhuǎn)原則告訴我們,如果想設(shè)計(jì)一個(gè)靈活的系統(tǒng),在源碼層次的依賴關(guān)系中應(yīng)該(),以下說法不正確的是()[多選題]*A、引用抽象類型B、引用具體實(shí)現(xiàn)√C、引用其他工具類√D、寫高質(zhì)量代碼√73.關(guān)于SOLID原則以下說法正確的是()[多選題]*A、任何一個(gè)軟件模塊只能有一個(gè)被修改的原因√B、設(shè)計(jì)良好的計(jì)算機(jī)軟件應(yīng)該易于擴(kuò)展,同時(shí)抗拒修改√C、在一般情況下,任何層次的軟件設(shè)計(jì)如果依賴于不需要的東西,都會是有害的√D、DIP原則想告訴我們的是,如果想要設(shè)計(jì)一個(gè)靈活的系統(tǒng),在源代碼層次的依賴關(guān)系中就應(yīng)該多引用抽象類型,而非具體實(shí)現(xiàn)√74.我們應(yīng)該關(guān)注的是軟件系統(tǒng)內(nèi)部那些會經(jīng)常()的具體實(shí)現(xiàn)模塊,這些模塊是()的,也就經(jīng)常會出現(xiàn)變更()[多選題]*A、變動(dòng)的√B、不變的C、不停開發(fā)√D、穩(wěn)定的75.如果想要在軟件架構(gòu)上追求穩(wěn)定,就必須多使用穩(wěn)定的抽象接口,少依賴多變的具體實(shí)現(xiàn)類,以下說法正確的是()[多選題]*A、應(yīng)在代碼中多使用抽象接口,避免使用那些多變的具體實(shí)現(xiàn)√B、不要在具體實(shí)現(xiàn)類上創(chuàng)建衍生類√C、不要覆蓋包含具體實(shí)現(xiàn)的函數(shù)√D、應(yīng)避免在代碼中寫入與任何具體實(shí)現(xiàn)相關(guān)的名字,或者其他容易變動(dòng)的事物的名字√76.對于每個(gè)軟件系統(tǒng),我們都可以通過哪些維度來體現(xiàn)它的實(shí)際價(jià)值()[多選題]*A、行為√B、性能C、質(zhì)量D、架構(gòu)√77.下列對系統(tǒng)價(jià)值維度描述正確的是()[多選題]*A、系統(tǒng)行為,是緊急的,但是并不總是特別重要√B、系統(tǒng)架構(gòu),是重要的,但是并不總是特別緊急√C、系統(tǒng)架構(gòu),是重要的,且特別緊急D、系統(tǒng)行為,是重要的,且并不總是特別緊急78.編程范式包含下列哪幾個(gè)()[多選題]*A、結(jié)構(gòu)化編程√B、面向?qū)ο缶幊獭藽、函數(shù)式編程√D、響應(yīng)式編程79.軟件架構(gòu)的三大關(guān)注點(diǎn)()[多選題]*A、穩(wěn)定性B、功能性√C、組件獨(dú)立性√D、數(shù)據(jù)管理√80.事件溯源這種數(shù)據(jù)存儲模式中不存在()和()的情況()[多選題]*A、新增B、刪除√C、更新√D、查詢81.軟件,或者說計(jì)算機(jī)程序無一例外是由哪幾種行為組合而成的()[多選題]*A、順序結(jié)構(gòu)√B、分支結(jié)構(gòu)√C、循環(huán)結(jié)構(gòu)√D、間接轉(zhuǎn)移√82.系列哪些是面向?qū)ο缶幊陶Z言()[多選題]*A、CB、JAVA√C、C++√D、C#√83.面向?qū)ο缶幊贪铝心男┨匦裕ǎ多選題]*A、封裝√B、繼承√C、多態(tài)√D、響應(yīng)式編程84.下列說法哪些是正確的()[多選題]*A、通過類中的公共函數(shù)操作私有成員變量體現(xiàn)了封裝的思想√B、代碼中Cat類實(shí)現(xiàn)Animal類eat()方案采到了繼承的方式√C、適配器模式體現(xiàn)多態(tài)的思想√D、只有面向?qū)ο蟪绦蛑胁艜玫蕉鄳B(tài)的思想85.需求變更的()和()是決定對應(yīng)軟件變更實(shí)施成本高低的關(guān)鍵()[多選題]*A、內(nèi)容B、范疇√C、時(shí)間D、形狀√86.以下哪些是遵循依賴反轉(zhuǎn)原則(DIP)的良好編碼守則()[多選題]*A、應(yīng)在代碼中多使用抽象接口,盡量避免使用那些多變的具體實(shí)現(xiàn)類√B、不要在具體實(shí)現(xiàn)類上創(chuàng)建衍生類√C、不要覆蓋(override)包含具體實(shí)現(xiàn)的函數(shù)√D、應(yīng)避免在代碼中寫入與任何具體實(shí)現(xiàn)相關(guān)的名字,或者是其他容易變動(dòng)的事物的名字√87.以下表述與書中依賴反轉(zhuǎn)原則(DIP)表述具有相似含義的是()[多選題]*A、抽象不應(yīng)該依賴細(xì)節(jié),細(xì)節(jié)依賴抽象√B、高層模塊不應(yīng)該依賴低層模塊,兩者都應(yīng)該依賴于其抽象√C、Don'tcallus,we'llcallyouD、派生類對象可以在程序中代替其基類對象88.SOLID包含哪些具體原則?()[多選題]*A、OCP√B、LSP√C、SRP√D、IOC89.任何一個(gè)軟件模塊都應(yīng)該只對某一類行為負(fù)責(zé),其中軟件模塊具體是指什么內(nèi)容?()[多選題]*A、一組緊密相關(guān)的函數(shù)和數(shù)據(jù)結(jié)構(gòu)√B、一個(gè)公共組件C、一個(gè)函數(shù)方法D、一個(gè)源代碼文件√90.遵循里氏替換原則可以帶來哪些優(yōu)勢()[多選題]*A、增強(qiáng)了代碼的可維護(hù)性√B、提高代碼的可擴(kuò)展性√C、降低代碼的耦合度√D、繼承是侵入性的91.里氏替換原則四層含義包含以下哪些()[多選題]*A、子類可以實(shí)現(xiàn)父類的抽象方法,但是不能覆蓋父類的非抽象方法√B、子類中可以增加自己特有的方法√C、當(dāng)子類覆蓋或?qū)崿F(xiàn)父類的方法時(shí),方法的前置條件(即方法的形參)要比父類方法的輸入?yún)?shù)更寬松√D、當(dāng)子類的方法實(shí)現(xiàn)父類的抽象方法時(shí),方法的后置條件(即方法的返回值)要比父類更嚴(yán)格√92.實(shí)現(xiàn)接口隔離原則的方法()[多選題]*A、將接口劃分為更小的、更具體的接口,每個(gè)接口只包含客戶端所需的方法√B、使用基類的地方必須使用子類進(jìn)行替換C、使用依賴注入√D、使用適配器模式√93.使用接口隔離原則可以帶來許多好處()[多選題]*A、降低耦合度√B、提高靈活性√C、增強(qiáng)可維護(hù)性√D、提高代碼復(fù)用性√94.以下哪些模式符合開閉原則()[多選題]*A、簡單工廠模式B、工廠方法模式√C、原型模式√D、橋接模式√95.開閉原則相關(guān)的面向?qū)ο笤O(shè)計(jì)原則()[多選題]*A、單一職責(zé)原則√B、依賴倒置原則√C、接口隔離原則√D、里氏替換原則√96.任何一個(gè)軟件模塊可以有任意多個(gè)被修改的原因。對錯(cuò)√97.設(shè)計(jì)良好的計(jì)算機(jī)軟件應(yīng)該易于擴(kuò)展,同時(shí)拒絕修改。對錯(cuò)√98.在一般情況下,任何層次的軟件設(shè)計(jì)如果依賴于不需要的東西,都會是有害的。對√錯(cuò)99.如果A,B組件存在依賴關(guān)系,A組件不想被B組件上發(fā)生的修改所影響,應(yīng)該讓B組件依賴于A組件。對√錯(cuò)100.假設(shè)有3個(gè)用戶需要操作ops類,分別調(diào)用ops類的不同方法,沒必要將各自調(diào)用的方法隔離出不同接口。對錯(cuò)√101.DIP原則想告訴我們的是,如果想要設(shè)計(jì)一個(gè)靈活的系統(tǒng),在源代碼層次的依賴關(guān)系中就應(yīng)該多引用具體實(shí)現(xiàn),而非抽象類型。對錯(cuò)√102.軟件架構(gòu)設(shè)計(jì)的終極目標(biāo)是,用最優(yōu)的架構(gòu)來滿足構(gòu)建和維護(hù)該系統(tǒng)的需求。對錯(cuò)√103.我們可以未來再重構(gòu)代碼,產(chǎn)品上線最重要。對錯(cuò)√104.任何情況下系統(tǒng)正常工作都比系統(tǒng)易于修改更重要。對錯(cuò)√105.在架構(gòu)設(shè)計(jì)領(lǐng)域,功能性降解拆分仍然時(shí)最佳實(shí)踐之一。對√錯(cuò)106.所有的競爭問題、死鎖問題、并發(fā)更新問題都是由可變量導(dǎo)致的。對√錯(cuò)107.軟件開發(fā)的一個(gè)核心特點(diǎn):要想跑的快,先要跑得穩(wěn)。對√錯(cuò)108.依賴反轉(zhuǎn)原則(DIP)告訴我們,要將所有對具體實(shí)現(xiàn)類的依賴,轉(zhuǎn)為對接口、抽象類的依賴,我們在軟件系統(tǒng)中可以完全消除違反DIP的情況。對錯(cuò)√109.任何一個(gè)軟件模塊都應(yīng)該有且僅有一個(gè)被修改的原因。對√錯(cuò)110.一個(gè)子類應(yīng)該可以完全替代它的父類,并且保持程序的正確性和已執(zhí)行。對√錯(cuò)111.一個(gè)好的軟件架構(gòu)設(shè)計(jì)師會努力將舊代碼的修改需求量降至最小,甚至為0。對√錯(cuò)112.對系統(tǒng)進(jìn)行抽象化是實(shí)現(xiàn)開閉原則的方法。對√錯(cuò)113.接口隔離原則強(qiáng)調(diào)將一個(gè)大接口拆分成許多小接口,不同小接口靈活組合,增加了靈活性但提升了代碼的冗余程度。對錯(cuò)√B1.架構(gòu)設(shè)計(jì)的工作常常需要將組件重排組合成為一個(gè)()。[單選題]*A、完全圖B、無向圖C、有向無環(huán)圖√D、二分圖2.在一個(gè)設(shè)計(jì)良好的架構(gòu)中,依賴關(guān)系的方向通常取決于他們所關(guān)聯(lián)的()。[單選題]*A、組件聚合B、組件耦合C、組件層次√D、邊界3.軟件架構(gòu)設(shè)計(jì)的工作重點(diǎn)之一是將策略批次分離,將他們按照()進(jìn)行重組。[單選題]*A、策略B、依賴關(guān)系C、變更的方式√D、層次4.代表業(yè)務(wù)邏輯的代碼應(yīng)該是整個(gè)系統(tǒng)的核心,其他低層概念的實(shí)現(xiàn)應(yīng)該以()形式接入系統(tǒng)。[單選題]*A、組件B、模塊C、插件√D、框架5.業(yè)務(wù)實(shí)體屬于()概念,而用例屬于()概念。[單選題]*A、高層、低層√B、低層、高層C、里層、外層D、外層、里層6.用例控制著()之間的交互方式。[單選題]*A、組件B、業(yè)務(wù)實(shí)體√C、模塊D、程序7.框架應(yīng)該是一個(gè)()[單選題]*A、可選項(xiàng)√B、必選項(xiàng)C、插件項(xiàng)D、部署項(xiàng)8.一個(gè)良好的架構(gòu)設(shè)計(jì)應(yīng)該圍繞著()來展開[單選題]*A、領(lǐng)導(dǎo)B、公司資源C、研發(fā)D、用例√9.架構(gòu)設(shè)計(jì)的主題應(yīng)該基于[單選題]*A、用例√B、開發(fā)C、領(lǐng)導(dǎo)D、用戶10.良好的架構(gòu)設(shè)計(jì)應(yīng)該只關(guān)注()[單選題]*A、代碼B、用例√C、框架D、開發(fā)量11.我們一定要帶著()的態(tài)度看待每一個(gè)框架。[單選題]*A、包容B、點(diǎn)贊C、信徒D、懷疑√12.系統(tǒng)架構(gòu)的設(shè)計(jì)目標(biāo)是按照不同的()對軟件進(jìn)行切割。[單選題]*A、切入點(diǎn)B、契合點(diǎn)C、關(guān)注點(diǎn)√D、邊界點(diǎn)13.關(guān)于業(yè)務(wù)實(shí)體說法不正確的是?[單選題]*A、業(yè)務(wù)實(shí)體封裝了整個(gè)系統(tǒng)的關(guān)鍵業(yè)務(wù)邏輯B、業(yè)務(wù)實(shí)體不能被其他應(yīng)用復(fù)用√C、業(yè)務(wù)實(shí)體是一個(gè)帶有方法的對象D、業(yè)務(wù)實(shí)體是一組數(shù)據(jù)結(jié)構(gòu)和函數(shù)的集合14.屬于接口適配器層的不包括以下哪個(gè)選項(xiàng)?[單選題]*A、數(shù)據(jù)庫√B、展示器C、視圖D、控制器15.不屬于最外層的模型層的組成部分的是?[單選題]*A、工具B、數(shù)據(jù)庫C、Web框架D、網(wǎng)關(guān)√16.下列說法正確的是?[單選題]*A、最內(nèi)層包含最通用、最高層的策略B、源碼層面的依賴一定要指向同心圓內(nèi)側(cè)C、層次越往內(nèi),抽象和策略層次越低,其抽象程度越高√D、最外層包含最具體的實(shí)現(xiàn)細(xì)節(jié)17.構(gòu)造合理的跨邊界調(diào)用需要我們對源碼中的____進(jìn)行合理管控[單選題]*A、依賴數(shù)量B、依賴關(guān)系√C、代碼質(zhì)量D、開發(fā)方式18."謙卑對象模式"最初的設(shè)計(jì)目的是?[單選題]*A、區(qū)分容易和難以測試的行為√B、處理組件依賴關(guān)系C、幫助設(shè)計(jì)系統(tǒng)架構(gòu)D、方便將數(shù)據(jù)填充到GUI上19.對象關(guān)系映射器(ORM)系統(tǒng)統(tǒng)應(yīng)該屬于系統(tǒng)架構(gòu)中的哪一層?[單選題]*A、GUI層B、中間件層C、數(shù)據(jù)庫層√D、源碼層20.在整個(gè)系統(tǒng)中,只有____依賴于Main組件。[單選題]*A、用例B、底層組件C、高層組件D、操作系統(tǒng)√21.Main組件也可以被視為應(yīng)用程序的一個(gè)____,負(fù)責(zé)設(shè)置起始狀態(tài)、配置信息、加載外部資源,最后將控制權(quán)轉(zhuǎn)交給應(yīng)用程序的其他高層組件[單選題]*A、插件√B、依賴C、入口D、邊界22.謙卑對象(humbleobject)這種設(shè)計(jì)模式可以很好地幫助識別和保護(hù)系統(tǒng)架構(gòu)的____。[單選題]*A、缺陷B、邊界√C、作用D、目標(biāo)23.SQL部分的功能需要通過網(wǎng)關(guān)接口來提供,而這些接口的實(shí)現(xiàn)則要由______的類來負(fù)責(zé)[單選題]*A、GUI層B、中間件層C、數(shù)據(jù)庫層√D、源碼層24.我們將系統(tǒng)行為分割成可測試和不可測試兩部分的過程常常就也定義了系統(tǒng)的_____.。[單選題]*A、策略B、組件分類標(biāo)準(zhǔn)C、用例D、架構(gòu)邊界√25.對于用例交互器(interactor)與數(shù)據(jù)庫中間的組件,我們通常稱之為:[單選題]*A、數(shù)據(jù)庫網(wǎng)關(guān)√B、Main組件C、業(yè)務(wù)組件D、數(shù)據(jù)映射器26.對象不是數(shù)據(jù)結(jié)構(gòu)。至少從用戶的角度來說,對象內(nèi)部的數(shù)據(jù)應(yīng)該都是:[單選題]*A、公開的B、不可見的√C、部分可見的D、可修改的27.通過在系統(tǒng)的邊界處運(yùn)用_____,我們可以大幅地提高整個(gè)系統(tǒng)的可測試性。[單選題]*A、展示器與視圖B、策略模式C、謙卑對象模式√D、數(shù)據(jù)映射器28.以下關(guān)于數(shù)據(jù)庫映射器描述錯(cuò)誤的是?[單選題]*A、數(shù)據(jù)映射器是一種設(shè)計(jì)模式B、它用于將應(yīng)用程序的數(shù)據(jù)模型與數(shù)據(jù)存儲(通常是數(shù)據(jù)庫)之間進(jìn)行解耦C、它的主要目標(biāo)是保持領(lǐng)域模型的純粹性,使其不受持久化和存儲細(xì)節(jié)的影響D、可用于將對象模型與關(guān)系型數(shù)據(jù)庫之間進(jìn)行映射√29.以下關(guān)于數(shù)據(jù)庫網(wǎng)關(guān)描述錯(cuò)誤的是?[單選題]*A、數(shù)據(jù)庫網(wǎng)關(guān)是一個(gè)中間層軟件組件,用于連接不同類型的數(shù)據(jù)庫和數(shù)據(jù)存儲系統(tǒng)B、數(shù)據(jù)庫網(wǎng)關(guān)處理協(xié)議轉(zhuǎn)換、查詢翻譯、數(shù)據(jù)轉(zhuǎn)換、安全性、權(quán)限控制等任務(wù),以確保應(yīng)用程序可以方便地與各種數(shù)據(jù)庫進(jìn)行C、數(shù)據(jù)庫網(wǎng)關(guān)同時(shí)也是一種設(shè)計(jì)模式,用于處理應(yīng)用程序的業(yè)務(wù)邏輯√D、數(shù)據(jù)庫網(wǎng)關(guān)可以用于協(xié)議轉(zhuǎn)換30.關(guān)于服務(wù)監(jiān)聽器描述正確的是?[單選題]*A、用于監(jiān)控和響應(yīng)特定服務(wù)或事件的組件或模塊√B、它包含了應(yīng)用程序在數(shù)據(jù)庫上所要執(zhí)行的創(chuàng)建、讀取、更新、刪除等操作C、它是一種設(shè)計(jì)模式D、用于管理和發(fā)現(xiàn)謙卑對象31.采用架構(gòu)整潔之道的目的是?[單選題]*A、單一職責(zé)原則(SingleResponsibilityPrinciple)和開放封閉原則(Open-ClosedPrinciple),從而幫助構(gòu)建更可擴(kuò)展和易于維護(hù)的代碼B、將事件的產(chǎn)生和處理分離,使系統(tǒng)的各個(gè)組件能夠松耦合地協(xié)同工作C、創(chuàng)建可維護(hù)、可測試、可擴(kuò)展且獨(dú)立于外部因素的軟件系統(tǒng)√D、一種設(shè)計(jì)模式,也是一種軟件開發(fā)技術(shù)32.Main組件中的依賴關(guān)系通常應(yīng)該由___框架來注入[單選題]*A、協(xié)調(diào)、創(chuàng)建B、依賴注入√C、組件D、依賴反轉(zhuǎn)33.以下關(guān)于展示器視圖和謙卑對象關(guān)系對的是[單選題]*A、視圖部分屬于可測試的謙卑對象B、展示器是可測試的對象√C、展示器是難以測試的對象D、視部分是相對容易測試的謙卑對象34.強(qiáng)大的()是一個(gè)架構(gòu)的設(shè)計(jì)是否優(yōu)秀的顯著衡量標(biāo)準(zhǔn)之一[單選題]*A、框架B、性能C、可測試性√D、架構(gòu)35.數(shù)據(jù)結(jié)構(gòu)可以進(jìn)行()的傳輸[單選題]*A、跨模塊B、跨組件C、跨邊界D、跨服務(wù)邊界√36.()的職責(zé)之一就是預(yù)判未來哪里有可能會需要設(shè)置架構(gòu)邊界,并決定應(yīng)該以完全形式還是不完全形式來實(shí)現(xiàn)它們。[單選題]*A、開發(fā)人員B、架構(gòu)師√C、系統(tǒng)分析師D、測試人員37.門戶模式下,我們可以省掉()工作。[單選題]*A、循環(huán)依賴B、單一職責(zé)C、接口隔離D、依賴反轉(zhuǎn)√38.在設(shè)計(jì)一套完整的系統(tǒng)架構(gòu)邊界時(shí),往往需要用反向接口來維護(hù)邊界兩側(cè)組件的();[單選題]*A、隔離性√B、獨(dú)立行C、可測試性D、依賴性39.謙卑對象模式最初的設(shè)計(jì)目的是幫助()的編寫者區(qū)分容易測試的行為與難以測試的行為,并將它們隔離[單選題]*A、功能測試B、單元測試√C、集成測試D、用戶測試40.在設(shè)計(jì)一套完整的系統(tǒng)架構(gòu)邊界時(shí),往往需要用()來維護(hù)邊界兩側(cè)組件的隔離性。[單選題]*A、依賴反轉(zhuǎn)B、反向接口√C、接口隔離D、組件聚合41.門戶模式:()的間接轉(zhuǎn)移不用接口和實(shí)現(xiàn)去做,而是用門戶類去做,用這種方式連接口都不用聲明了。[單選題]*A、調(diào)用方B、被調(diào)用方C、賦值權(quán)D、控制權(quán)√42.構(gòu)建完整的架構(gòu)邊界是一件很耗費(fèi)成本的事。在這個(gè)過程中,需要為系統(tǒng)設(shè)計(jì)(),用于輸入和輸出的數(shù)據(jù)結(jié)構(gòu)。[單選題]*A、組件層級B、雙向的多態(tài)邊界接口√C、獨(dú)立的接口D、單向的輸入模式43.不屬于邊界的解耦方式的是()?[單選題]*A、源碼層次B、部署層次C、服務(wù)層次D、組件層次√44.作為(),我們必須要小心審視究竟在什么地方才需要設(shè)計(jì)架構(gòu)邊界。另外,我們還必須弄清楚完全實(shí)現(xiàn)這些邊界將會帶來多大的成本[單選題]*A、架構(gòu)師√B、軟件工程師C、BAD、產(chǎn)品經(jīng)理45.Main組件也可以被視為應(yīng)用程序的一個(gè)插件一一這個(gè)插件負(fù)責(zé)()、配置信息、加載外部資源,最后將控制權(quán)轉(zhuǎn)交給應(yīng)用程序的其他高層組件[單選題]*A、設(shè)置起始狀態(tài)√B、配置信息C、加載外部資源D、初始化46.Main組件也可以被視為應(yīng)用程序的一個(gè)插件一一這個(gè)插件負(fù)責(zé)設(shè)置起始狀態(tài)、()、加載外部資源,最后將控制權(quán)轉(zhuǎn)交給應(yīng)用程序的其他高層組件[單選題]*A、設(shè)置起始狀態(tài)B、配置信息√C、加載外部資源D、初始化47.Main組件也可以被視為應(yīng)用程序的一個(gè)插件一一這個(gè)插件負(fù)責(zé)設(shè)置起始狀態(tài)、配置信息、(),最后將控制權(quán)轉(zhuǎn)交給應(yīng)用程序的其他高層組件[單選題]*A、設(shè)置起始狀態(tài)B、配置信息C、加載外部資源√D、初始化48.由于Main組件能以()存在于系統(tǒng)中,因此我們可以為一個(gè)系統(tǒng)設(shè)計(jì)多個(gè)Main組件,讓它們各自對應(yīng)于不同的配置。[單選題]*A、組件形式B、插件形式√C、接口形式D、配置化49.Main組件是整個(gè)系統(tǒng)中的一個(gè)(),它處于整潔架構(gòu)的最外圈,主要負(fù)責(zé)為系統(tǒng)加載所有必要的信息,然后再將控制權(quán)轉(zhuǎn)交回系統(tǒng)的高層組件。[單選題]*A、底層模塊√B、上層模塊C、邊沿模塊D、底層實(shí)現(xiàn)50.在所有的系統(tǒng)中,都至少要有一個(gè)組件來負(fù)責(zé)()其他組件的運(yùn)轉(zhuǎn)。我們將其稱為Main組件。[單選題]*A、創(chuàng)建、協(xié)調(diào)、監(jiān)督√B、創(chuàng)建、協(xié)調(diào)、監(jiān)控C、創(chuàng)建、協(xié)調(diào)、監(jiān)視D、創(chuàng)建、調(diào)度、監(jiān)督51.Mai口組件是系統(tǒng)中最細(xì)節(jié)化的部分一一也就是底層的策略,它是整個(gè)系統(tǒng)的()[單選題]*A、初始點(diǎn)√B、起始點(diǎn)C、出發(fā)點(diǎn)D、終點(diǎn)52.軟件架構(gòu)設(shè)計(jì)按照策略彼此分離組件時(shí),()、()和()應(yīng)該被分到同一個(gè)組件中。()[多選題]*A、變更原因√B、變更地點(diǎn)C、時(shí)間√D、層次相同的策略√53.變更原因和變更時(shí)間相同的策略應(yīng)在哪兩個(gè)原則的指導(dǎo)下合并為同一組件。()[多選題]*A、SRP√B、REPC、CCP√D、SAP54.關(guān)于業(yè)務(wù)實(shí)體說法正確的有()[多選題]*A、業(yè)務(wù)實(shí)體是包含了一系列用于操作關(guān)鍵數(shù)據(jù)的業(yè)務(wù)邏輯的計(jì)算機(jī)系統(tǒng)中的對象√B、業(yè)務(wù)實(shí)體對象直接包含了關(guān)鍵業(yè)務(wù)數(shù)據(jù)√C、業(yè)務(wù)實(shí)體對象可以較容易的訪問關(guān)鍵業(yè)務(wù)數(shù)據(jù)√D、業(yè)務(wù)實(shí)體的接口層由實(shí)現(xiàn)關(guān)鍵業(yè)務(wù)邏輯、操作關(guān)鍵業(yè)務(wù)數(shù)據(jù)的函數(shù)組成√55.按照架構(gòu)設(shè)計(jì)出來的系統(tǒng)通過具有哪些特點(diǎn)()[多選題]*A、可被測試√B、獨(dú)立于UI√C、獨(dú)立于框架√D、獨(dú)立于數(shù)據(jù)庫√E、獨(dú)立于任何外部機(jī)構(gòu)√56.架構(gòu)通常包括哪些層級()[多選題]*A、框架與驅(qū)動(dòng)程序√B、接口適配器√C、用例√D、業(yè)務(wù)實(shí)體√57.應(yīng)用程序所能控制的、要在屏幕上顯示的一切東西,都應(yīng)該在視圖模型中以哪些形式存在()[多選題]*A、字符串√B、布爾值√C、任意值D、枚舉值√58.對于用例交互器(interactor)與數(shù)據(jù)庫中間的組件,我們通常稱之為數(shù)據(jù)庫網(wǎng)關(guān)'。這些數(shù)據(jù)庫網(wǎng)關(guān)本身是一個(gè)多態(tài)接口,包含了應(yīng)用程序在數(shù)據(jù)庫上所要執(zhí)行的以下哪些操作()[多選題]*A、創(chuàng)建√B、讀取√C、更新√D、刪除√59.構(gòu)建不完全邊界的方式包含以下哪幾種()[多選題]*A、謙卑對象模式B、省掉最后一步√C、策略模式√D、門戶模式√60.Main組件是指系統(tǒng)中來負(fù)責(zé)_____其他組件的運(yùn)?轉(zhuǎn)()[多選題]*A、創(chuàng)建√B、協(xié)調(diào)√C、監(jiān)督√D、維持61.Main組件的任務(wù)是創(chuàng)建_______,并最終將系統(tǒng)的控制權(quán)轉(zhuǎn)交給最高抽象層的代碼來處理()[多選題]*A、工廠類√B、策略類√C、全局設(shè)施√D、中間件62.關(guān)于謙卑對象模式描述正確的是()[多選題]*A、謙卑對象模式就是為了幫助單元測試的編寫者區(qū)分容易測試的行為與難以測試的行為√B、展示器實(shí)際上是采用謙卑對象模式的一種形式√C、謙卑對象模式本質(zhì)上就是一個(gè)設(shè)計(jì)模式D、謙卑對象模式是一種軟件設(shè)計(jì)概念√63.架構(gòu)師怎么應(yīng)對邊界問題()[多選題]*A、判斷未來哪里有可能需要設(shè)置架構(gòu)邊界√B、需決定應(yīng)該已完全形式還是不完全形式來實(shí)現(xiàn)它們√C、盡量把代碼抽象化來應(yīng)對將來可能存在的需求D、使用單向邊界與門戶模式64.謙卑對象模式初的設(shè)計(jì)目的是幫助單元測試的編寫者區(qū)分()的行為與()的行為,并將它們隔離()[多選題]*A、難以測試√B、簡單測試C、容易測試√D、復(fù)雜測試65.利用謙卑對象模式將GUI的這兩種行為拆分成()與()[多選題]*A、業(yè)務(wù)邏輯B、展示器√C、視圖√D、界面66.數(shù)據(jù)庫網(wǎng)關(guān)通??梢员惶鎿Q成對應(yīng)的()和()[多選題]*A、測試替身類√B

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論