




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、專業(yè)資料軟件設(shè)計(jì)模式(Java版)習(xí)題第1章 軟件設(shè)計(jì)模式基礎(chǔ)1.1 軟件設(shè)計(jì)模式概述1.2 UML中的類圖1.3 面向?qū)ο蟮脑O(shè)計(jì)原則、名詞解釋1 . 一個(gè)軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉,即在不修改源代碼的基礎(chǔ)上擴(kuò)展 一個(gè)系統(tǒng)的行為。2 . 一個(gè)對(duì)象應(yīng)該只包含單一的職責(zé),并且該職責(zé)被完整地封裝在一個(gè)類中。3 .在軟件中如果能夠使用基類對(duì)象,那么一定能夠使用其子類對(duì)象。4 .是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié), 使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。二、單選擇題1.( A )2.( A )3. ( A )4. ( D )5. (
2、 D )6. ( A )7. ( D )8.( D )9.( D )10.( E )11.( C ) 12.(C)13. ( A )三、多選擇題1. ( A、B、C、D )2. ( A 、B )3.( A、D )4.( A、B、C D )四、填空題1 .依賴倒轉(zhuǎn)、迪米特法則、單一職責(zé)2 .模式名字、目的、問題、解決方案、效果、實(shí)例代碼3 .胃子類4 .開閉5 .用戶6 .依賴倒轉(zhuǎn)7 .組合/聚合8 .結(jié)構(gòu)型、行為型9 . 依賴倒轉(zhuǎn)10 . ML11 .需求收集是否正確、體系結(jié)構(gòu)的構(gòu)建是否合理、測(cè)試是否完全12 .人與人之間的交流13 .接口14 .名稱、 目的、解決方案15 .對(duì)象組合 、 類
3、繼承16 .對(duì)象組合17 .對(duì)象組合 、 類繼承18 .抽象類的指針五、簡(jiǎn)答題1 .答:設(shè)計(jì)模式按類型分為以下三類:1) 創(chuàng)建型設(shè)計(jì)模式:以靈活的方式創(chuàng)建對(duì)象集合,用于管理對(duì)象的創(chuàng)建。2) 結(jié)構(gòu)型設(shè)計(jì)模式:將己有的代碼集成到新的面向?qū)ο笤O(shè)計(jì)中,用于處理類或?qū)?象的組合。3) 行為型設(shè)計(jì)模式:用于描述對(duì)類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊?zé)。2 .答:設(shè)計(jì)模式的主要優(yōu)點(diǎn)如下:1) 設(shè)計(jì)模式融合了眾多專家的經(jīng)驗(yàn),并以一種標(biāo)準(zhǔn)的形式供廣大開發(fā)人員所 用,它提供了一套通用的設(shè)計(jì)詞匯和一種通用的語言以方便開發(fā)人員之間溝通和交流, 使得設(shè)計(jì)方案更加通俗易懂。2) 設(shè)計(jì)模式使人們可以更加簡(jiǎn)單方便地復(fù)用成功的設(shè)計(jì)和體
4、系結(jié)構(gòu),將已證 實(shí)的技術(shù)表述成設(shè)計(jì)模式也會(huì)使新系統(tǒng)開發(fā)者更加容易理解其設(shè)計(jì)思路。設(shè)計(jì)模式使 得重用成功的設(shè)計(jì)更加容易,并避免那些導(dǎo)致不可重用的設(shè)計(jì)方案。3) 設(shè)計(jì)模式使得設(shè)計(jì)方案更加靈活,且易于修改。4) 設(shè)計(jì)模式的使用將提高軟件系統(tǒng)的開發(fā)效率和軟件質(zhì)量,且在一定程度上 節(jié)約設(shè)計(jì)成本。5) 設(shè)計(jì)模式有助于初學(xué)者更深入地理解面向?qū)ο笏枷?,一方面可以幫助初學(xué) 者更加方便地閱讀和學(xué)習(xí)現(xiàn)有類庫與其他系統(tǒng)中的源代碼,另一方面還可以提高軟件 的設(shè)計(jì)水平和代碼質(zhì)量。3 .答:設(shè)計(jì)模式一般有如下幾個(gè)基本要素:模式名稱、問題、目的、解決方案、效果、 實(shí)例代碼和相關(guān)設(shè)計(jì)模式,其中的關(guān)鍵元素包括模式名稱、問題、解決
5、方案和效果。4 .答:正確使用設(shè)計(jì)模式具有以下優(yōu)點(diǎn): 可以提高程序員的思維能力、編程能力和設(shè)計(jì)能力。 使程序設(shè)計(jì)更加標(biāo)準(zhǔn)化、代碼編制更加工程化,使軟件開發(fā)效率大大提高,從 而縮短軟件的開發(fā)周期。 使設(shè)計(jì)的代碼可重用性高、可讀性強(qiáng)、可靠性高、靈活性好、可維護(hù)性強(qiáng)。5 .答:根據(jù)類與類之間的耦合度從弱到強(qiáng)排列,UML中的類圖有以下幾種關(guān)系:依賴關(guān)系、關(guān)聯(lián)關(guān)系、聚合關(guān)系、組合關(guān)系、泛化關(guān)系和實(shí)現(xiàn)關(guān)系。其中泛化和實(shí)現(xiàn)的耦合 度相等,它們是最強(qiáng)的。6 .答:1)開閉原則(OCP:它要求軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉;2) 里氏替換原則(LSP):它要求繼承必須確保超類所擁有的性質(zhì)在子類中仍然成立;3
6、) 依賴倒置原則(DIP):它要求軟件設(shè)計(jì)要面向接口編程,不要面向?qū)崿F(xiàn)編 程;4) 單一職責(zé)原則(SRP:它要求對(duì)象不應(yīng)該承擔(dān)太多職責(zé),一個(gè)類應(yīng)該有且僅有一個(gè)引起它變化的原因;5) 接口隔離原則(ISP):它要求程序員盡量將臃腫龐大的接口拆分成更小的和更具體的接口,讓接口中只包含客戶感興趣的方法;6) 迪米特法則(LoD):它要求如果兩個(gè)軟件實(shí)體無須直接通信,就不應(yīng)當(dāng)直接相互調(diào)用,而通過第三方轉(zhuǎn)發(fā)該調(diào)用;7) 合成復(fù)用原則(CRP:它要求在軟件復(fù)用時(shí),要盡量先使用組合或者聚合 等關(guān)聯(lián)關(guān)系來實(shí)現(xiàn),其次才考慮使用繼承關(guān)系來實(shí)現(xiàn)。第2章創(chuàng)建型模式(上)2.2 單例模式2.3 原型模式一、單選擇題1.
7、 ( A )2. ( B )3. ( A )4. ( D )5. ( C )6. ( B )7.( B )二、多選擇題1 .( C )2. ( A , B )3. ( A、B )4. ( A 、B、C )5. ( A、C )6. ( A、R C、D )7. ( A,B,C,D )三、填空題1 .對(duì)象的創(chuàng)建、使用分離、耦合度2 .創(chuàng)建型3 .創(chuàng)建性4 .懶漢式單例、俄漢式單例5 .抽象原型類、具體原型類四、程序分析題 解:本題使用了單例模式,參考類圖如下所示:VisitVisiter覿/也巾:Visiter -new VisrtOrQ 煞num : int = 0曾VifitnrQ . Visi
8、tor etVisitQ : Visitor *gelNumberO - ini五、簡(jiǎn)答題1 .答:創(chuàng)建型模式分為以下幾種:?jiǎn)卫⊿ingleton )模式:某個(gè)類只能生成一個(gè)實(shí)例,該類提供了一個(gè)全局 訪問點(diǎn)供外部獲取該實(shí)例,其拓展是有限多例模式。原型(Prototype )模式:將一個(gè)對(duì)象作為原型,通過對(duì)其進(jìn)行復(fù)制而克隆 出多個(gè)和原型類似的新實(shí)例。工廠方法(Factory Method )模式:定義一個(gè)用于創(chuàng)建產(chǎn)品的接口,由子 類決定生產(chǎn)什么產(chǎn)品。抽象工廠(Abstract Factory )模式:提供一個(gè)創(chuàng)建產(chǎn)品族的接口,其每 個(gè)子類可以生產(chǎn)一系列相關(guān)的產(chǎn)品。建造者(Builder )模式
9、:將一個(gè)復(fù)雜對(duì)象分解成多個(gè)相對(duì)簡(jiǎn)單的部分,然 后根據(jù)不同需要分別創(chuàng)建它們,最后構(gòu)建成該復(fù)雜對(duì)象。2 .答:?jiǎn)卫J街攸c(diǎn)在于在整個(gè)系統(tǒng)上共享一些創(chuàng)建時(shí)較耗資源的對(duì)象。整個(gè)應(yīng)用中只維護(hù)一個(gè)特定類實(shí)例,它被所有組件共同使用。Java.lang.Runtime是單例模式的經(jīng)典例子。從Java 5開始你可以使用枚舉(enumi)來實(shí)現(xiàn)線程安全的單例。3 .答:?jiǎn)卫⊿ingleton )模式的定義:指一個(gè)類只有一個(gè)實(shí)例,且該類能自 行創(chuàng)建這個(gè)實(shí)例的一種模式。特點(diǎn):1)單例類只有一個(gè)實(shí)例對(duì)象;2)該單例對(duì)象必須由單例類自行創(chuàng)建;3)單例類對(duì)外提供一個(gè)訪問該單例的全局訪問點(diǎn)。應(yīng)用場(chǎng)景:1)在某類只要求生成一
10、個(gè)對(duì)象的時(shí)候;2)當(dāng)對(duì)象需要被共享的場(chǎng)合;3)當(dāng)某類需要頻繁實(shí)例化,而創(chuàng)建的對(duì)象又頻繁被銷毀的時(shí)候。4 .答:原型模式通常適用以下場(chǎng)景:1)對(duì)象之間相同或相似,即只是個(gè)別的幾個(gè)屬性不同的時(shí)候;2)對(duì)象的創(chuàng)建過程比較麻煩,但克隆比較簡(jiǎn)單時(shí)候。原型模式可擴(kuò)展為:帶原型管理器的原型模式,它在原型模式的基礎(chǔ)上增加了一個(gè)原型管理器 PrototypeManager 類。第3章創(chuàng)建型模式(下)3.1 工廠方法模式3.2 抽象工廠模式3.3 建造者模式、單選擇題1. ( B )2. ( A )6.( C )7.( B )、多選擇題1 .( A、B、C、D )3. ( C )8.( A )9.B、C、D )4
11、. ( C(A)5. ( D )10.( A )3. ( A、C )三、填空題1 .工廠方法、抽象工廠2 .簡(jiǎn)單工廠3 . 抽象工廠(Abstract Factory) 、具體工廠(Concrete Factory) 、抽象產(chǎn)品 (Product)4 .工廠方法、多個(gè)等級(jí)的產(chǎn)品5. 抽象建造者( Builder )、具體建造者( ConcreteBuilder )、指揮者(Director )五、簡(jiǎn)答題1 .答:工廠模式的最大好處是增加了創(chuàng)建對(duì)象時(shí)的封裝層次。如果你使用工廠來創(chuàng)建對(duì) 象,之后你可以使用更高級(jí)和更高性能的實(shí)現(xiàn)來替換原始的產(chǎn)品實(shí)現(xiàn)或類,這不需要在調(diào)用 層做任何修改。應(yīng)用場(chǎng)合是常常有
12、新的對(duì)象類型要被添加進(jìn)來,但你所關(guān)心的僅僅是方法的 接口,不關(guān)心其實(shí)現(xiàn)細(xì)節(jié),本書中已經(jīng)詳細(xì)地介紹了其好處和應(yīng)用環(huán)境。2 .答:工廠方法模式白主要優(yōu)點(diǎn)有: 1)用戶只需要知道具體工廠的名稱就可得到所要的 產(chǎn)品,無須知道產(chǎn)品的具體創(chuàng)建過程; 2)在系統(tǒng)增加新的產(chǎn)品時(shí)只需要添加具體產(chǎn)品類和對(duì) 應(yīng)的具體工廠類,無需對(duì)原工廠進(jìn)行任何修改,滿足開閉原則。其缺點(diǎn)是:每增加一個(gè)產(chǎn)品就要增加一個(gè)具體產(chǎn)品類和一個(gè)對(duì)應(yīng)的具體工廠類,這增加 了系統(tǒng)的復(fù)雜度。3 .答:工廠方法模式中考慮的是一類產(chǎn)品的生廠,如:電視機(jī)工廠;而抽象工廠模式考 慮多類產(chǎn)品的生產(chǎn),如:電器工廠。工廠方法模式通常適用以下場(chǎng)景:1)客戶只知道創(chuàng)建
13、產(chǎn)品的工廠名,而不知道具體的產(chǎn)品名。如:TCL電視工廠、海信電視工廠等;2)創(chuàng)建對(duì)象的任務(wù)由多個(gè)具體子工廠中的某一個(gè)完成,而抽象工廠只提供創(chuàng)建產(chǎn)品的接口。3)客戶不關(guān)心創(chuàng)建產(chǎn)品的細(xì)節(jié),只關(guān)心產(chǎn)品的品牌。抽象工廠模式通常適用以下場(chǎng)景:1)當(dāng)需要?jiǎng)?chuàng)建的對(duì)象是一系列相互關(guān)聯(lián)或相互依賴的產(chǎn)品族時(shí),如:電器工廠中的電視機(jī)、洗衣機(jī)、空調(diào)等;2)系統(tǒng)中有多個(gè)產(chǎn)品族,但每次只使用其中的某一族產(chǎn)品。如:有的粉絲只喜歡穿李寧牌的衣、褲和鞋;3)系統(tǒng)中提供了產(chǎn)品的類庫,且所有產(chǎn)品的接口相同,客戶端不依賴產(chǎn)品實(shí)例的創(chuàng)建細(xì)節(jié)和內(nèi)部結(jié)構(gòu)。4 .答:產(chǎn)品的種類稱為產(chǎn)品等級(jí),而一個(gè)具體工廠所生產(chǎn)的位于不同等級(jí)的一組產(chǎn)品稱 為
14、一個(gè)產(chǎn)品族。5 .答:建造者模式的定義:指將一個(gè)復(fù)雜對(duì)象的構(gòu)造與它的表示分離,使同樣的構(gòu)建過 程可以創(chuàng)建不同的表示,這樣的設(shè)計(jì)模式被稱為建造者模式。該模式的主要優(yōu)點(diǎn)是:1 )各個(gè)具體的建造者相互獨(dú)立的,有利于系統(tǒng)的擴(kuò)展;2)客戶端不必知道產(chǎn)品內(nèi)部組成的細(xì)節(jié),便于控制細(xì)節(jié)風(fēng)險(xiǎn)。其缺點(diǎn)是:1)產(chǎn)品的組成部分必須相同,這限制了其使用范圍;2)如果產(chǎn)品的內(nèi)部變化復(fù)雜,該模式會(huì)增加很多的建造者類。建造者模式通常在以下場(chǎng)合使用:1)創(chuàng)建的對(duì)象較復(fù)雜,由多個(gè)部件構(gòu)成,各部件面臨著復(fù)雜的變化,但構(gòu)件間的建造順序是穩(wěn)定的;2)創(chuàng)建復(fù)雜對(duì)象的算法獨(dú)立于該對(duì)象的組成部分以及它們的裝配方式,即產(chǎn)品的構(gòu)建過程和最終的表
15、示是獨(dú)立的。六、編程題說明:1-5編程題可參考本章節(jié)的實(shí)例自己實(shí)現(xiàn)。第4章結(jié)構(gòu)型模式(上)4.2 代理模式4.3 適配器模式4.4 橋接模式單選擇題1.( A )2.(A )6.( C )7.( D )(A )3. ( D )4. ( B )5.二、多選擇題1. ( A、D )2. ( A 、B、D )3.( A、C、D )4. ( A、R C )三、填空題1. I舌酉己器 (Adapter ) 模式、橋接(Bridge) 模式、裝飾(Decorator) 模式觀(Facade) 模式、享元(Flyweight) 模式2. 直實(shí)豐題( RealSubject )類、 代王里(Proxy )類3
16、. 動(dòng)態(tài)代理模式4 .繼承、組合/聚合5 . 適配者 (Adaptee) 類、適配器 (Adapter ) 類6 .橋接7 .適配器四、程序分析題解:1)本題使用了代理器模式;2 )其參考 結(jié)構(gòu)圖如下所示:OviewNoteQ - voidpublishhote(): voidsetLevelfint level): voidR 又莫文主膻ARealPe mission+ viewNoteQ : void+ pulalrsMMateO: void+ setLevelfint level): void優(yōu)代坤主題掙P(guān)emi5EionPrc)(¥-p RealPermission-leve
17、l: int+viewNoteQ : void+ publishNcteO: vad+ setLevel(int level). voidz、word完美格式五、簡(jiǎn)1. 答:代理(Proxy)模式:為某對(duì)象提供一種代理以控制對(duì)該對(duì)象的訪問。 即客戶端通過代理間接地訪問該對(duì)象,從而限制、增強(qiáng)或修改該對(duì)象的一些特性。代理模式有以下的應(yīng)用場(chǎng)景:1)為了隱藏目標(biāo)對(duì)象存在于不同地址空間的事實(shí),方便客戶端訪問時(shí);2)要?jiǎng)?chuàng)建的目標(biāo)對(duì)象開銷很大時(shí);3)控制不同種類客戶對(duì)真實(shí)對(duì)象的訪問權(quán)限時(shí);4)當(dāng)調(diào)用目標(biāo)對(duì)象需要附加一些額外的處理功能時(shí);5)為了提高系統(tǒng)的性能,需延遲對(duì)目標(biāo)的加載時(shí)。2. 答:代理模式的主要優(yōu)
18、點(diǎn)有:1)代理模式在客戶端與目標(biāo)對(duì)象之間起到一個(gè)中介作用和保護(hù)目標(biāo)對(duì)象的作用;2)代理對(duì)象可以擴(kuò)展目標(biāo)對(duì)象的功能;3)代理模式能將客戶端與目標(biāo)對(duì)象分離,在一定程度上降低了系統(tǒng)的耦合度。其主要缺點(diǎn)是:1)在客戶端和目標(biāo)對(duì)象增加一個(gè)代理對(duì)象,會(huì)造成請(qǐng)求處理速度變慢;2)增加了系統(tǒng)的復(fù)雜度。3. 答:遠(yuǎn)程代理:這種方式通常是為了隱藏目標(biāo)對(duì)象存在于不同地址空間的 事實(shí),方便客戶端訪問。例如用戶申請(qǐng)某些網(wǎng)盤空間時(shí),會(huì)在用戶的文件系統(tǒng)中建立 一個(gè)虛擬的硬盤,用戶訪問它實(shí)際訪問的是網(wǎng)盤空間。虛擬代理:這種方式通常用于要?jiǎng)?chuàng)建的目標(biāo)對(duì)象開銷很大時(shí)。比如下載一幅很大的圖像 需要很長(zhǎng)時(shí)間,因某種計(jì)算比較復(fù)雜而短時(shí)間
19、無法完成,這時(shí)可以先用小比例的虛擬代理替 換真實(shí)的對(duì)象,消除用戶對(duì)服務(wù)器慢的感覺。安全代理:這種方式通常用于控制不同種類客戶對(duì)真實(shí)對(duì)象的訪問權(quán)限。4. 答:適配器模式(Adapter )的定義如下:將一個(gè)類的接口轉(zhuǎn)換成客戶希望 的另外一個(gè)接口,使得原本由于接口不兼容而不能一起工作的那些類能一起工作。適 配器模式分為類結(jié)構(gòu)型模式和對(duì)象結(jié)構(gòu)型模式2種,前者類之間的耦合度比后者高,且要求程序員了解現(xiàn)有組件庫中的相關(guān)組件的內(nèi)部結(jié)構(gòu),所以應(yīng)用相對(duì)較少些。Java例子可參考本章節(jié)相關(guān)實(shí)例設(shè)計(jì)。5. 答:適配器模式通常適用以下場(chǎng)景:1 )以前開發(fā)的系統(tǒng)存在滿足新系統(tǒng)功能需求的類,但其接口同新系統(tǒng)的接口不一致
20、;2)使用第三方提供的組件,但組件接口定義和自己要求的接口定義不同。應(yīng)用實(shí)例可參考本章節(jié)相關(guān)實(shí)例設(shè)計(jì)。6. 答:橋接模式的定義如下:將抽象與實(shí)現(xiàn)分離,使他們可以獨(dú)立的變化。它是用組合關(guān)系代替繼承關(guān)系來實(shí)現(xiàn),從而降低了抽象和實(shí)現(xiàn)這2個(gè)可變維度的耦合度。其優(yōu)點(diǎn)是:1 )由于抽象與實(shí)現(xiàn)分離,所以擴(kuò)展能力強(qiáng);2)其實(shí)現(xiàn)細(xì)節(jié)對(duì)客戶透明。缺點(diǎn)是:由于聚合關(guān)系建立在抽象層,要求開發(fā)者針對(duì)抽象化進(jìn)行設(shè)計(jì)與編程,這增加 了系統(tǒng)的理解與設(shè)計(jì)難度。六、綜合題1) .解:本題可使用適配器模式和抽象工廠模式,參考類圖如下所示:Client lassPl3 汽曰 ctury+ creatsMa nV/i rdcw (Ma
21、 1 n也 th v/creatfiRayerList ) PtsyertistRea Rsy?rWin do*+ cFe必必MmEdVkindow ') MainVJiMow+ c. atePlave 由 M fPlayer Li =tL1diaPla;erAPlealPlayerPJ+ crectepMirWncciw () - FZainWindcv* cremtePlaygrLiM (: Flaveitisti"1.PlaytrL stRdlFlayeiL 周其中:1) PlayerFactory為抽象工廠,MediaPlayerFactory 和 RealPlaye
22、rFactory是具體工廠;2) MainWindow (主窗口)和 PlayerList(播放列表)是兩個(gè)抽象產(chǎn)品;3) MediaPlayerWindow 和 RealPlayerWindow 是兩個(gè)具體產(chǎn)品,是對(duì) MainWindow 的實(shí) 現(xiàn);4) MediaPlayerList 和 RealPlayerList是兩個(gè)具體產(chǎn)品,是對(duì) PlayerList的實(shí)現(xiàn);5) MediaPlayerWindow 和 MediaPlayerList 由 MediaPlayerFactory 生產(chǎn);6) RealPlayerWindow 和 RealPlayerList 由 RealPlayerFa
23、ctory 生產(chǎn);7) MediaPlayerAPI是已有的 API,充當(dāng)適配者,供 MediaPlayerWindow (適配器)和 MediaPlayerList(適配器)調(diào)用。8) RealPlayerAPI也是已有的 API,充當(dāng)適配者,供 RealPlayerWindow (適配器)和 RealPlayerList(適配器)調(diào)用。第5章結(jié)構(gòu)型模式(下)5.1 裝飾模式5.2 外觀模式5.3 享元模式5.4 組合模式一、單選擇題1.( D )2. ( D )3. ( B )4. ( C )5.( B )6. ( C )7. ( D )8. ( A )9. ( B )10.( C )二、
24、多選擇題1. ( A,B,C,D )2.( B,C)3.( A、B )4.( A > B C )5. ( A、B、CD )6.( A,B )7. ( C,D )三、填空題1 .抽象構(gòu)件(Component)、具體構(gòu)件( Concrete Component )、抽象裝飾( Decorator )2 .迪米特 3.內(nèi)部狀態(tài)、外部狀態(tài)4.單純、復(fù)合 5.結(jié)構(gòu)型、創(chuàng)建型6.透明式、安全式四、程序分析題1 .解:本題使用了享元模式,參考類圖如下所示:電W rac java.LtiliTkrray Li stn&聃Li ctQKfchenVre龜lot alFJu: int = 0ge,k
25、jlc henWyertyrip Stfinj) - bowlgdfToy WaM : ini加“QNwiiO int; String)import2 .解:1)本題使用了享元模式。2 )其參考程序代碼如下所示:java.util.*; public class WareFactory private ArrayList Wares = new ArrayList();private int totalNum=0; public WareFactory() KitchenWare nd1=new bowl("飯碗");Wares.add(ndl); KitchenWare
26、nd2=new cup(" 杯子"); Wares.add(nd2); public KitchenWare getKitchenWare(String type) if(type.equalsIgnoreCase("飯碗") totalNum+;return (KitchenWare)Wares.get(0); else if(type.equalsIgnoreCase(" 杯子") totalNum+;return (KitchenWare)Wares.get; else return null; public int getTo
27、talWare() return Wares.size(); public int gettotalNum() return totalNum; public interface KitchenWare public String getType(); public void use(); public class bowl implements KitchenWare private String type;public bowl(String type) this.type=type; public String getType() return this.type; public voi
28、d use() System.out.println("使用的廚具是:"+ this.type); public class cup implements KitchenWare private String type;public cup(String type) this.type=type; public String getType() return this.type; public void use() System.out.println("使用的廚具是:"+this.type); public class Client2010 publi
29、c static void main(String口 args) KitchenWare kw1,kw2,kw3,kw4;WareFactory df=new WareFactory();kw1=df.getKitchenWare(" kw2=df.getKitchenWare(" kw3=df.getKitchenWare(" kw4=df.getKitchenWare(" System.out.println(" System.out.println(" 飯碗)kw1.use();飯碗”);杯子");杯子");
30、廚具種類:"kw2.use();kw3.use();kw4.use();+ df.getTotalWare();生成的廚具數(shù):"+ df.gettotalNum();五、簡(jiǎn)答題1 .答:裝飾模式增加強(qiáng)了單個(gè)對(duì)象的能力。Java IO 到處都使用了裝飾模式,經(jīng)典的例子就是 Buffered 系列類如 BufferedReader 和 BufferedWriter ,它們?cè)鰪?qiáng)了 Reader 和 Writer對(duì)象,以實(shí)現(xiàn)提升性能的 Buffer 層次的讀取和寫入。2. 答:裝飾模式是一種用于替代繼承的技術(shù),它使用對(duì)象之間的關(guān)聯(lián)關(guān)系來 取代類之間的繼承關(guān)系。當(dāng)不能采用繼承的方式對(duì)
31、系統(tǒng)進(jìn)行擴(kuò)展或者采用繼承不利于 系統(tǒng)擴(kuò)展和維護(hù)時(shí)可以使用裝飾模式。在裝飾模式中引入了裝飾類,在裝飾類中既可 以調(diào)用待裝飾的原有類的方法,還可以增加新的方法,以擴(kuò)充原有類的功能。這些都 不用改變?cè)袑?duì)象,滿足開閉原則。3. 答:外觀模式的定義:是一種通過為多個(gè)復(fù)雜的子系統(tǒng)提供一個(gè)一致的接口,而使這些子系統(tǒng)更加容易被訪問的模式。其主要優(yōu)點(diǎn)有:1)降低了子系統(tǒng)與客戶端之間的耦合度,使得子系統(tǒng)的變化不會(huì)影響到 調(diào)用它的客戶類;2)對(duì)客戶屏蔽了子系統(tǒng)組件,減少了客戶處理的對(duì)象數(shù)目,并使得子系統(tǒng) 使用起來更加容易;3)降低了大型軟件系統(tǒng)中的編譯依賴性,簡(jiǎn)化了系統(tǒng)在不同平臺(tái)之間的 移植過程,因?yàn)榫幾g一個(gè)子系
32、統(tǒng)不會(huì)影響其他的子系統(tǒng),也不會(huì)影響到外觀對(duì)象。其主要缺點(diǎn)是:1)不能很好地限制客戶使用子系統(tǒng)類;2)增加新的子系統(tǒng)可能需要修改外觀類或客戶端的源代碼,違背了 “開閉原則”。其應(yīng)用場(chǎng)景有:1)對(duì)分層結(jié)構(gòu)系統(tǒng)構(gòu)建時(shí),使用外觀模式定義子系統(tǒng)中每層的入口點(diǎn)可 以簡(jiǎn)化子系統(tǒng)之間的依賴關(guān)系;2)對(duì)于一個(gè)復(fù)雜系統(tǒng),其子系統(tǒng)很多,外觀模式可以為系統(tǒng)設(shè)計(jì)一個(gè)簡(jiǎn)單的接口供外界訪問;3)當(dāng)客戶端與多個(gè)子系統(tǒng)之間存在很大的聯(lián)系時(shí),引入外觀模式可將它們分離,從而提高子系統(tǒng)的獨(dú)立性和可移植性。4. 答:享元工廠角色負(fù)責(zé)創(chuàng)建和管理享元角色。當(dāng)客戶對(duì)象請(qǐng)求一個(gè)享元對(duì) 象時(shí),享元工廠檢查系統(tǒng)中是否存在符合要求的享元對(duì)象,如果存
33、在則提供給客戶; 如果不存在的話,則創(chuàng)建一個(gè)新的享元對(duì)象,它是工廠模式在享元模式中的應(yīng)用。5. 答:組合模式包含抽象構(gòu)件(Component)角色、樹葉構(gòu)件(Leaf)角色、 樹枝構(gòu)件(Composite )角色。它分為透明式的組合模式和安全式的組合模式2種。安全組合模式的類圖如下:Component+ operatfonf) : void出樹葉構(gòu)件必Leaf-name: String+ Leaf (String name)operaticr() vu dAI也樹枝國件林Composite-children : Arrybs1<Compor>ent?-+ add(Component
34、c): void+ removetComponent c): void* getChild(int i): Companont+ cperationO: void優(yōu)客戶用色修Connposrte Pattern+ main(String args): voidpublic void operationf)(fort Object objichildren)(Component )obj). ope ration ();)第6章行為型模式(上)6.2 模板方法模式6.3 策略模式6.4 命令模式單選擇題1.( A )2. ( D )3. ( C )6. ( B )7.( D )8.( A )9.
35、( B )4. ( B )5. ( A )多選擇題1. ( B,C,D )2. ( A,B,D )3. ( A,B,C )4.(A , B, C, D )三、填空題1. 行為型模式2. 模板方法3. 抽象方法、具體方法、鉤子方法4. 策略5. 簡(jiǎn)單工廠6. 命令四、簡(jiǎn)答題1 .答:行為型模式用于描述程序在運(yùn)行時(shí)復(fù)雜的流程控制,即描述多個(gè)類或?qū)ο?之間怎樣相互協(xié)作共同完成單個(gè)對(duì)象都無法單獨(dú)完成的任務(wù),它涉及到算法與對(duì)象間職責(zé)的分配。共有11種行為型模式,它們的 定義如下: 模板方法(Template Method )模式:定義一個(gè)操作中的算法骨架,而將算 法的一些步驟延遲到子類中,使得子類可以不
36、改變?cè)撍惴ńY(jié)構(gòu)的情況下重定義該算法 的某些特定步驟。 策略(Strategy )模式:定義了一系列算法,并將每個(gè)算法封裝起來,使 他們可以相互替換,且算法的改變不會(huì)影響到使用算法的客戶。 命令(Command模式:將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,使發(fā)出請(qǐng)求的責(zé)任和 執(zhí)行請(qǐng)求的責(zé)任分割開。(4) 職責(zé)鏈(Chain of Responsibility )模式:把請(qǐng)求從鏈中的一個(gè)對(duì)象傳到 下一個(gè)對(duì)象,直到請(qǐng)求被響應(yīng)為止。通過這種方式去除對(duì)象之間的耦合。 狀態(tài)(State )模式:允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)發(fā)生改變時(shí)改變其行為能 力。 觀察者(Observer )模式:多個(gè)對(duì)象間存在一對(duì)多關(guān)系,當(dāng)一個(gè)對(duì)象發(fā)
37、生 改變時(shí),把這種改變通知給其它多個(gè)對(duì)象,從而影響其它對(duì)象的行為。 中介者(Mediator )模式:定義一個(gè)中介對(duì)象來簡(jiǎn)化原有對(duì)象之間的交互 關(guān)系,降低系統(tǒng)中對(duì)象間的耦合度,使原有對(duì)象之間不必相互了解。 迭代器(Iterator )模式:提供一種方法來順序訪問聚合對(duì)象中的一系列 數(shù)據(jù),而不暴露聚合對(duì)象的內(nèi)部表示。 訪問者(Visitor )模式:在不改變集合元素的前提下,為一個(gè)集合中的每 個(gè)元素提供多種訪問方式,即每個(gè)元素有多個(gè)訪問者對(duì)象訪問。(10) 備忘錄(Memento)模式:在不破壞封裝性的前提下,獲取并保存一個(gè)對(duì)象 的內(nèi)部狀態(tài),以便以后恢復(fù)它。(11) 解釋器(Interprete
38、r )模式:提供如何定義語言的文法,以及對(duì)語言句子 的解釋方法,即解釋器。2 .答:模板方法 的主要優(yōu)點(diǎn)是:1) 它封裝了不變部分,擴(kuò)展可變部分。它把認(rèn)為是不變部分的算法封裝到父類中實(shí)現(xiàn),而把可變部分算法由子類繼承實(shí)現(xiàn),便于子類繼續(xù)擴(kuò)展;2) 它在父類中提取了公共的部分代碼,便于代碼復(fù)用;3) 部分方法是由子類實(shí)現(xiàn)的,因此子類可以通過擴(kuò)展方式增加相應(yīng)的功能, 符合開閉原則。模板方法的主要缺點(diǎn)是:1) 對(duì)每個(gè)不同的實(shí)現(xiàn)都需要定義一個(gè)子類,這會(huì)導(dǎo)致類的個(gè)數(shù)增加,系統(tǒng)更加龐 大,設(shè)計(jì)也更加抽象;2) 父類中的抽象方法由子類實(shí)現(xiàn),子類執(zhí)行的結(jié)果會(huì)影響父類的結(jié)果,這導(dǎo)致一 種反向的控制結(jié)構(gòu),它提高了代碼
39、閱讀的難度。其應(yīng)用實(shí)例有:(自己介紹)O+ strategy ): vcid57 RK V,偉畸*Co icreteStrategyA+ st ateg/Wethod() vdo3) 答:策略模式的結(jié)構(gòu)圖如下:Context-鈕才口 W 中rx/yf setstrategy (Strategy strategy): vdd-» getStnatc.j/O : Strategy卜 stratagyMctnodi): vddpuUicvoid trateoyM ettiod() sEteW strategyMetfiod(jc其應(yīng)用場(chǎng)景有:1) 一個(gè)系統(tǒng)需要?jiǎng)討B(tài)地在幾種算法中選擇一種時(shí),
40、可將每個(gè)算法封裝到策略類中;2) 一個(gè)類定義了多種行為,并且這些行為在這個(gè)類的操作中以多個(gè) 條件語句的形式出現(xiàn),可將每個(gè)條件分支移入到它們各自的策略類中以代替這些條件語句;3)系統(tǒng)中各算法彼此完全獨(dú)立,且要求對(duì)客戶隱藏具體算法的實(shí)現(xiàn)細(xì)節(jié)時(shí);4)系統(tǒng)要求使用算法的客戶不應(yīng)該知道其操作的數(shù)據(jù)時(shí),可使用策略模式來隱藏與算法相關(guān) 的數(shù)據(jù)結(jié)構(gòu);5)多個(gè)類只區(qū)別在表現(xiàn)行為不同,可以使用策略模式,在運(yùn)行時(shí)動(dòng)態(tài)選擇具體要執(zhí)行的行為。4 .答:Java.util.List接口定義了增加(add)、刪除(remove)、修改(set)、查詢(indexOf )等策略,其實(shí)現(xiàn)類ArrayList 、LinkedLi
41、st等采用了不同的算法來實(shí)現(xiàn)這些策略,用戶可根據(jù)其特點(diǎn)選用它們。5 .答:命令模式通常適用以下場(chǎng)景:1)當(dāng)系統(tǒng)需要將請(qǐng)求調(diào)用者與請(qǐng)求接收者解耦時(shí),命令模式使得調(diào)用者和接收者不直接交互;2)當(dāng)系統(tǒng)需要隨機(jī)請(qǐng)求命令或經(jīng)常增加或刪除命令時(shí),命令模式比較方便實(shí)現(xiàn)這些功能;3)當(dāng)系統(tǒng)需要執(zhí)行一組操作時(shí),命令模式可以定義宏命令來實(shí)現(xiàn)該功能;4)當(dāng)系統(tǒng)需要支持命令的撤銷 (Undo)操作和恢復(fù)(Redo)操作時(shí),可以將命令對(duì)象存儲(chǔ)起來,采用備忘錄模式來實(shí)現(xiàn)。其應(yīng)用實(shí)例有:(自己舉例)6 .答:將命令模式與前面學(xué)的組合模式聯(lián)合使用,這就構(gòu)成了宏命令模式,也叫 組合命令模式,其具體結(jié)構(gòu)圖如下:Ab*=lrac?
42、Cur- rndtidvoid五、編程題解:1)本題使用了策略模式2)其參考程序代碼如下所示:interface Travelstrategypublic void travel。;class AirplaneStrategy implements TravelStrategypublic void travel。System.out.println("飛機(jī)游!");class TrainStrategy implements TravelStrategy public voidtravel()System.out.println("火車游!");cla
43、ss BicycleStrategy implements TravelStrategy public void travel。System.out.println("自行車游!"); class Person private Travelstrategyts;public setStrategy(TravelStrategy ts) this.ts=ts;public void travelMethod()Method(); class Client public static void main(String args)TravelStrategy t
44、s = new BicycleStrategy();Person p1 = new Person(); p1.setStrategy(ts);P1.travelMethod(); 第7章行為型模式(中)7.1 職責(zé)鏈模式7.2 狀態(tài)模式7.3 觀察者模式7.4 中介者模式、單選擇題1.( B )6. ( C )7. ( D )2. ( C )8.3. ( D )4(C )、多選擇題1.( A,B,D )5. ( B,C,D )2. ( A,C,D )3. ( A、B、C )4. ( A,B,D )三、填空題1. 對(duì)象行為型2. 純的職責(zé)鏈模式 、 不純的職責(zé)鏈模式3. 環(huán)境(Context )
45、、抽象狀態(tài)( State )、具體狀態(tài)(ConcreteState )4. 觀察者、命令5. java.util.Observable 、java.util.Observer6. 不定義中介者接口,把具體中介者對(duì)象實(shí)現(xiàn)成為單例四、設(shè)計(jì)題1 .解:本題可使用觀察者模式,參考類圖如下所示:五、簡(jiǎn)答題1 .答:職責(zé)鏈模式的定義:為了避免請(qǐng)求發(fā)送者與多個(gè)請(qǐng)求處理者耦合在一起, 將所有請(qǐng)求的處理者通過前一對(duì)象記住其下一個(gè)對(duì)象的引用而連成一條鏈;當(dāng)有請(qǐng)求發(fā) 生時(shí),可將請(qǐng)求沿著這條鏈傳遞,直到有對(duì)象處理它為止。2 .答:職責(zé)鏈模式是一種對(duì)象行為型模式,其主要優(yōu)點(diǎn)有:1) 降低了對(duì)象之間的耦合度。該模式使得一
46、個(gè)對(duì)象無需知道到底是哪一個(gè)對(duì)象處理其請(qǐng)求以及鏈的結(jié)構(gòu),發(fā)送者和接收者也無需擁有對(duì)方的明確信息。2) 增強(qiáng)了系統(tǒng)的可擴(kuò)展性。可以根據(jù)需要增加新的請(qǐng)求處理類,滿足開閉原則;3) 增強(qiáng)了給對(duì)象指派職責(zé)的靈活性。當(dāng)工作流程發(fā)生變化,可以動(dòng)態(tài)地改變鏈內(nèi)的成員或者調(diào)動(dòng)它們的次序,也可動(dòng)態(tài)地新增或者刪除責(zé)任。4) 職責(zé)鏈簡(jiǎn)化了對(duì)象之間的連接。每個(gè)對(duì)象只需保持一個(gè)指向其后繼者的引用,不需保持其它所有處理者的引用,這避免了使用眾多的if或者if-else 語句。5) 責(zé)任分擔(dān)。每個(gè)類只需要處理自己該處理的工作,不該處理的傳遞給下一個(gè)對(duì)象完成,明確各類的責(zé)任范圍,符合類的單一職責(zé)原則。其主要缺點(diǎn)是:1) 不能保證
47、每個(gè)請(qǐng)求一定被處理。由于一個(gè)請(qǐng)求沒有明確的接收者,所以不能保證它一定會(huì)被處理,該請(qǐng)求可能一直傳到鏈的末端都得不到處理;2) 對(duì)于比較長(zhǎng)的職責(zé)鏈,請(qǐng)求的處理可能涉及到多個(gè)處理對(duì)象,系統(tǒng)性能將受到一定影響;3) 職責(zé)鏈建立的合理性要靠客戶端來保證,增加了程序的復(fù)雜性,可能會(huì)由于職責(zé)鏈的錯(cuò)誤設(shè)置而導(dǎo)致系統(tǒng)出錯(cuò),如:可能會(huì)造成循環(huán)調(diào)用。3 .答:通常在以下情況下可以考慮使用狀態(tài)模式:1)當(dāng)一個(gè)對(duì)象的行為取決于它的狀態(tài),并且它必須在運(yùn)行時(shí)刻根據(jù)狀態(tài)改變它的行為時(shí),就可以考慮使用狀態(tài)模式;2)一個(gè)操作中含有龐大的分支結(jié)構(gòu),并且這些分支決定于對(duì)象的狀態(tài)時(shí)。在有些情況下,可能有多個(gè)環(huán)境對(duì)象需要共享一組狀態(tài),這
48、時(shí)需要引入享元模式,將這 些具體狀態(tài)對(duì)象放在集合中供程序共享,這就是共享狀態(tài)模式。4 . 答:觀察者模式又叫做發(fā)布-訂閱(Publish/Subscribe )模式、模型-視圖M Model/View )模式、源-監(jiān)聽器(Source/Listener )模式或從屬者(Dependents )模Mediator )角色、具體中介者Colleague )角色、具體同事類5 .答:觀察者模式是基于目標(biāo)對(duì)象的狀態(tài)發(fā)生變化,而促使觀察者對(duì)象作出相應(yīng) 操作的一種行為型模式。如,一個(gè)天氣系統(tǒng),當(dāng)天氣變化時(shí),展示給公眾的視圖中會(huì)有 所反映,這里的天氣是目標(biāo),而視圖是觀察者。6 .答:中介者模式包含:抽象中介
49、者(ConcreteMediator )角色、抽象同事類(ConcreteColleague )角色。其結(jié)構(gòu)圖如下:六、綜合題2)可以選擇使用觀察者模式,1 .解:對(duì)于描述1)可以選擇使用工廠方法模式,對(duì)于描述 參考類圖如下所示:在類圖中,HouseCreator是抽象房屋工廠類,其子類 VilladomCreator 用于創(chuàng)建別墅 Villadom ,子類 ApartmentCreator 用于創(chuàng)建公寓 Apartment , Villadom 和 Apartment 都是抽 象房屋類House的子類,此時(shí)應(yīng)用了工廠方法模式,如果增加新類型的房屋,只需對(duì)應(yīng)增加 新的房屋工廠類即可,原有代碼無
50、須做任何修改;House類同時(shí)作為抽象觀察目標(biāo),子類Villadom 和Apartment作為具體觀察目標(biāo),相關(guān)人員類Stakeholder作為抽象觀察者,其子類Manager (主管)作為具體觀察者,實(shí)現(xiàn)了在 Stakeholder中聲明的response。方法,當(dāng) 房屋售出時(shí),房屋的狀態(tài) status將發(fā)生變化,在setStatus()方法中調(diào)用觀察者的 response。方法,即主管將收到相應(yīng)消息,此時(shí)應(yīng)用了觀察者模式。2.解:對(duì)于描述1)可以選擇使用中介者模式,對(duì)于描述2)可以選擇使用適配器模式,參考類圖如下所示:在類圖中,各類的角色如下:1)旅游公司:抽象中介者;2)廣之旅:具體中介
51、者;3)大學(xué)生:抽象同事類;4)韶關(guān)學(xué)院學(xué)生:是具體同事類,也是目標(biāo)抽象類;5)哈佛大學(xué)生、墨爾本大學(xué)生:是具體同事類,也是適配者類;6)翻譯1、翻譯2:適配器類。3.解:1)要完成以上功能,需使用“職責(zé)鏈模式”和“代理模式”;2) 其參考類圖如下所示:如he Sliing .1舁|學(xué)忙嶺情;firing)設(shè)置蛙挨箱9工匚半喳)11腑努落3) 在以上類圖中,用到了 2種模式:a )職責(zé)鏈模式,其夕斗“-中“學(xué)校類”是抽象處理者,“初級(jí)學(xué)校類、中級(jí)學(xué)校類、高級(jí)學(xué)校類”是具體)代理模式,其中“服務(wù)器類”是抽“遠(yuǎn)程服務(wù)器類”是真實(shí)主題類,處理者,“學(xué)員類”是請(qǐng)求類;b象主題類,“代理服務(wù)器類”是代理
52、主題類, “學(xué)員類”是客戶類。第8章行為型模式(下)8.1 迭代器模式8.2 訪問者模式8.3 備忘錄模式8.4 解釋器模式一、單選擇題1. ( C )2. ( B )3.( C )4. ( B )二、多選擇題2. ( C )2. ( A,B,C,D )3. ( A,B,C,D )三、簡(jiǎn)答題1. 答:迭代器模式主要包含以下角色:擄ggegate)角色;具體聚合(ConcreteAggregate )角色; 抽象迭代器(Iterator )角色;(4)具體迭代器(Concreteiterator )角色。其結(jié)構(gòu)圖如下:oIterator+ first。: Object+ next(): Obje
53、ct+ hasHerxt;). booleanAOAggregate+ ad(XObject obj): void+ removefObject obj): void+ yetlterator(): Iterator2. 答:訪問者(Visitor )模式的定義:將作用于某種數(shù)據(jù)結(jié)構(gòu)中的各元素的 操作分離出來封裝成獨(dú)立的類,使其在不改變數(shù)據(jù)結(jié)構(gòu)的前提下可以添加作用于這些 元素的新的操作,為數(shù)據(jù)結(jié)構(gòu)中的每個(gè)元素提供多種訪問方式。其主要優(yōu)點(diǎn)有:1)擴(kuò)展性好。能夠在不修改對(duì)象結(jié)構(gòu)中的元素的情況下,為對(duì)象結(jié)構(gòu)中的元素添加新的功能;2)復(fù)用性好??梢酝ㄟ^訪問者來定義整個(gè)對(duì)象結(jié)構(gòu)通用的功能,從而 提高系統(tǒng)的復(fù)用程度;3)靈活性好。訪問者模式將數(shù)據(jù)結(jié)構(gòu)與作用于結(jié)構(gòu)上的操作解耦,使 得操作集合可相對(duì)自由地演化而不影響系統(tǒng)的數(shù)據(jù)結(jié)構(gòu);4)符合單一職責(zé)原則。其主要缺點(diǎn)是:1)增加
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025個(gè)體診所轉(zhuǎn)讓合同
- 2025建筑工程項(xiàng)目管理目標(biāo)責(zé)任合同協(xié)議書范本
- 2025汽車修理及銷售獨(dú)家代理合同
- 2025版權(quán)許可合同(臺(tái)港澳地區(qū))
- 2025建筑工程合同誠信合作
- 黑龍江省齊齊哈爾市2024-2025學(xué)年高二下冊(cè)7月期末考試數(shù)學(xué)試卷(附答案)
- 新人教版歷史7年級(jí)上冊(cè)全冊(cè)教學(xué)課件
- 2024年上海青浦區(qū)社區(qū)工作者司法社工招聘真題
- 神經(jīng)內(nèi)科神經(jīng)肌肉疾病基礎(chǔ)知識(shí)點(diǎn)歸納
- 輪崗工作匯報(bào)交流群
- 2025年湖南長(zhǎng)沙醫(yī)療健康投資集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 電梯施工方案對(duì)重反繩輪
- 基于電磁感應(yīng)原理的旋轉(zhuǎn)設(shè)備轉(zhuǎn)速精確測(cè)量技術(shù)研究
- 輻射工作人員培訓(xùn)、體檢及保健制度
- 女裝基礎(chǔ)知識(shí)
- 商場(chǎng)安全隱患排查培訓(xùn)
- 預(yù)防性侵家長(zhǎng)會(huì)
- 建筑施工安全風(fēng)險(xiǎn)管理制度
- 水電站安全知識(shí)
- 龍舟競(jìng)渡 y-2024-2025學(xué)年人美版(2024)初中美術(shù)七年級(jí)下冊(cè)
- 人教版小學(xué)五年級(jí)語文下冊(cè)2024-2025學(xué)年度第二學(xué)期第七單元質(zhì)量檢測(cè)試卷含參考答案
評(píng)論
0/150
提交評(píng)論