設計模式考點_第1頁
設計模式考點_第2頁
設計模式考點_第3頁
設計模式考點_第4頁
設計模式考點_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、設計模式題庫-自編版選擇題1、設計模式具有( )的優點。A、提高系統性能 B、降低軟件規模和復雜度C、減少代碼開發工作量 D、提升軟件設計的質量2、 在面向對象軟件的開發中,采用設計模式( )。 A、 可以減少在設計和過程中需要創建的實例對象的數量B、 可以保證程序的運行速度達到最優值C、 可以復用相似問題的相同解決方案D、 允許在非面向對象程序設計語言中使用面向對象的概念3、 ( )都是行為型設計模式。A、 組合模式、適配者模式和代理模式B、 觀察者模式、職責鏈模式和策略模式C、 原型模式、建造者模式和單例模式D、 迭代器模式、命令模式和橋接模式4.開閉原則是面向對象的可復用設計的基石,開閉

2、原則是指一個軟件實體應當對( )開放,對( )關閉;里氏代換原則是指任何( )可以出現的地方,( )一定可以出現;依賴倒置原則就是依賴于( ),而不要依賴于( ),或者說要針對接口編程,不要針對實現編程。A、修改 B、擴展 C、分析 D、設計A、修改 B、擴展 C、分析 D、設計A、變量 B、常量 C、基類對象 D、子類對象A、變量 B、常量 C、基類對象 D、子類對象A、程序設計語言 B、建模語言 C、實現 D、抽象A、程序設計語言 B、建模語言 C、實現 D、抽象5.關于單一責原則,以下敘述錯誤的是( )。A、 一個雷只負責一個功能領域中的相應職責。B、 就一個類而言,應該有且僅有一個引起

3、它變化的原因。C、 一個類承擔的職責越多,越容易復用,被復用的可能性越大。D、 當一個類承擔的職責過多時,需要將職責進行分離,將不同的職責封裝 在不同的類中。6.以下關于面向對象設計的的敘述中,錯誤的是( )。A、 高層模塊不應該依賴于低層模塊。B、 抽象不應該依賴于細節。C、 細節可以依賴于抽象。D、 高層模塊無法不依賴于低層模塊。7.在系統設計中應用迪米特法則,以下敘述有誤的是( )。A、 在類的劃上,一個盡量創建松耦合的類,類的耦合度越低,復用越容易。B、 如果兩個類之間不必彼此直接通信,那么這兩個類就不應該發生直接的相互作用。C、 在對其他類的引用上,一個對象對其他對象的引用應該降到最

4、低。D、 在類的設計上,只要有可能,一個類型應該盡量設計成抽象類或接口,且成員變量和成員函數的訪問權限最好設置為公開的。8.在簡單工廠模式中,如果需要增加新的具體產品,通常需要修改( )的源代碼。A、抽象產品類 B、其他具體產品類 C、工廠類 D、客戶類9.以下關于簡單工廠模式敘述錯誤的是( )。A、簡單工廠模式可以根據參數的不同返回不同的產品類的實例。B、簡單工廠模式專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類。C、簡單工廠模式可以減少系統中的類的個數,簡化系統的設計,使得系統更易于理解。D、系統的擴展困難,在添加新的產品時需要修好工廠的業務邏輯,違背了開閉原則。1

5、0.以下代碼使用了( )模式。abstract class Productpublic abstract void Process();class ConcreateProductB:ProductPublic override void Process().Class FactoryPublic static Product CreateProduct(char type)Switch(type)Case A:Return new ConcreateProductA(); break;Case B:Return new ConcreateProductB();break;A、 Simple

6、Factory B、Factory Method B、 C、Abstract Factory D、未使用任何設計模式11.不同品牌的手機應該由不同是公司所造,例如Motorola公司生產Motorola手機,Nokia公司生產Nokia手機。該場景蘊含了( )模式。A、Simple Factory B、Factory Method C、Abstract Factory D、Builder12.以下關于工廠方法模式的敘述錯誤的是( )。A、 在工廠方法模式中引入了抽象工廠類,二具體產品的場景延遲到具體工廠中實現B、 使用工廠方法模式添加新的產品對象很容易,無須對原有系統進行修改,符合開閉原則C、

7、 工廠方法模式存在的問題是在添加新產品時,需要編寫新的具體產品類,而且提供與之對應的具體工廠類,隨著類個數的增加,會給系統帶來一些額外開銷。D、 工廠方法模式是所有形式的工廠模式中的最為抽象和最具一般性的一種形態,工廠方法模式退化后可以演變成抽象工廠模式。13.某銀行系統采用工廠模式描述其不同賬戶之間的關系,設計出的類圖如圖4-7所示。其中,與工廠模式中的“Creator”角色相對應的類是();與“Product”角色相對應的類是( )。A、BankB、AccountC、CheckingD、SavingsA、BankB、AccountC、CheckingD、Savings14、關于C#中的Me

8、mberwiseClone()方法,以下敘述有誤的是( )。A、對于對象x,都有x.MemberwiseClone()=xB、對于對象x,都有x.MemberwiseClone().GetType()=x.GetType()C、對于對象x的成員對象Member,都有x.MemberwiseClone().Menber=x.MemberD、對于對象x的成員對象Member,都有x.MemberwiseClone().Member.GetType()=x.Member.GetType.15.以下關于原型模式敘述錯誤的是( )。A、 原型模式通過給出一個原型對象來指明所要創建的對象的類型,然后用復制

9、這個原型對象的方法創建出更多同類型的對象B、 淺克隆僅僅復制所考慮的對象,而不復制它所引用的對象,也就是其中的成員對象并不復制C、 在原型模式中實現深克隆時通常需要編寫較為復雜的代碼D、 在原型模式中不需要為每一個類配備一個克隆方法,因此對于原型模式的擴展很靈活,對于已有類的改造也較為容易16.某公司要開發一個即時聊天軟件,用戶在聊天過程中可以與多位好友同時聊天,在私聊時將產生多個聊天窗口,為了提高聊天窗口的創建效率,要去根據第一個窗口快速創建其他窗口。針對這種需求,采用()進行設計最為合適。A、 享元模式B、單例模式C、原型模式D、組合模式17.在()時可使用單例模式。A、 隔離菜單項對象的

10、創建和使用B、 防止一個資源管理器窗口被實例化多次C、 使用一個已有的查找算法而不想修改既有代碼D、 不能創建子類,需要擴展一個數據過濾器18.以下關于單例模式的描述,正確的是()。A、 它描述了只有一個方法的類的集合B、 它能夠保證一個類只產生一個唯一的實例C、 它描述了只有一個屬性的類的集合D、 它能夠保證一個類的方法只能被一個唯一的類調用19.以下()不是單例模式的要點。A、 某個類只能有一個實例B、 單例類不能被繼承C、 必須自行創建單個實例D、 必須自行向整個系統提供單個實例20、()將一個類的接口轉換成客戶希望的另外一個接口,使得原本由于接口不兼容而不能一起工作的那些類可以一起工作

11、。A、命令(Command)模式B、適配器(Adapter)模式C、策略(Strategy)模式D、單例(Simple)模式21.以下關于適配器模式的敘述錯誤的是()。A、 適配器模式將一個接口裝換成客戶希望的另一個接口,使得原本由于接口不兼容那些類可以一起工作。B、 在類適配器中,Adapter和Adaptee是繼承關系,而在對象適配器中,Adapter和Adaptee是關聯關系。C、 類適配器比對象適配器更加靈活,在C#語言中可以通過類適配器一次視頻多個適配者類。D、 適配器可以在不修改原來的適配者接口Adaptee的情況下將一個類的接口和另一個類的接口匹配起來。22.現需要開發一個文件轉

12、換軟件,將文件由一種格式轉換為另一種格式,例如將XML文件轉換為PDF文件,將DOC文件轉換為TXT文件,有些文件格式轉換代碼已經存在,為了將已有的代碼應用于新軟件,而不需要修改軟件的整體結構,可以使用()模式進行系統設計。A、 適配器(Adapter)B、組合(Composite)C、外觀(Faced)D、橋接(Bridge)23.在對象適配器模式中,適配器類(Adapter)和適配者類(Adaptee)之間的關系為()。A、 關聯關系B、依賴關系C、繼承關系D、實現關系24.()模式將抽象部分與它的實現部分相分離,使它們都可以獨立地變化。圖10-7所示為該模式的圖,其中,()用于定義實現部

13、分的接口。A、單例(Simple) B、橋接(Bridge) C、組合(Composite) D、外觀(Faced)A、AbstractionB、ConcreteImplementorA C、ConcreteImplementorBD、Implementor25.以下關于橋接模式的敘述錯誤的是()。A、 橋接模式的用意是將抽象化與實現化解耦,使得亮著可以獨立地變化。B、 橋接模式將繼承關系轉換成關聯關系,從而降低系統的耦合度。C、 橋接模式來源動態地給一個對象增加功能,這些功能也可以動態的撤銷。D、 橋接模式可以從接口中分離實現功能,使得設計更具有擴展性。26.()不是橋接模式所適用的環境。A

14、、 一個可以跨平臺并支持多種格式的文件編輯器B、 一個支持多數據源的報表生成工具,可以以不同的圖形方式顯示報表信息C、 一個可動態選擇排序算法的數據操作工具D、 一個支持多種編程語言的跨平臺開發工具27.當不能采用生成子類的方法進行擴展時,可采用()模式動態地給一個對象添加一些額外的職責。A、外觀(Faced) B、單例(Simple) C、參與者(Participant) D、裝飾(Decorator)1、 以下()不是裝飾模式的適用條件。A、 要擴展一個類的功能或給一個類增加附加責任B、 要動態地給一個對象增加功能,這些功能還可以動態撤銷C、 要動態組合多于一個的抽象化角色和實現化角色D、

15、 要通過一些基本功能的組合產生復雜功能,而不使用繼承關系28.Windows操作系統中的應用程序快捷方式是()模式的應用實例。A、代理(Proxy) B、組合(Composite) C、裝飾(Decorator) D、外觀(Faced)1、 以下關于代理模式的敘述錯誤的是()。A、 代理模式能夠協調調用者和被調用者,從而在一定程度上降低系統的耦合度B、 控制對一個對象的訪問,給不同的用戶提供不同級別的使用權限時可以考慮使用遠程代理C、 代理模式的缺點是請求的處理速度會變慢,并且實現代理模式需要額外的工作D、 代理模式給某一個對象提供一個代理,并由代理對象控制對原對象的引用29.代理模式有多種類

16、型,其中,智能引用代理是指()。A、 為某一個目標操作的結果提供臨時的存儲空間,以便多個客戶端可以共享這些結果B、 保護目標不讓惡意用戶接近C、 使幾個用戶能夠同時使用一個對象而沒有沖突D、 當一個對象被引用時,提供一些額外的操作,例如將此對象被調用的次數記錄下來30.以下關于命令模式的敘述錯誤的是()。A、 命令模式將一個請求封裝為一個對象,從而可以用不同的請求對客戶進行參數化B、 命令模式可以將請求發送至和請求接受者解耦C、 使用命令模式會導致某些系統有過多的具體命令類,導致在有些系統中命令模式變得不切實際D、 命令模式是對命令的封裝,命令模式把發出命令的責任和執行命令的責任機制在同一個類

17、中,委派給同意的類來進行處理31.在()時無需使用命令模式。A、 實現撤銷操作和恢復操作B、 將請求的發送者和接收者解耦C、 不改變聚合類的前提下定義作用于聚合中元素的新操作D、 不同的時間指定請求,并將請求排隊32.()模式定義了對象間的一種一對多的依賴關系,以便當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并自動刷新。A、 適配器(Adapter) B、迭代器(Iterator) C、原型(Prototype) D、觀察者(Observer)33.在觀察者模式中,( )。A、 一個Subject對象可對應多個Observer對象B、 Subject只能有一個ConcreteSub

18、ject子類C、 Observer只能有一個ConcreteObserver子類D、 一個Subject對象必須至少對應一個Observer對象34.下面這句話隱含了()模式。我和妹妹跟媽媽說:“媽媽,我和妹妹在院子里玩。飯做好了叫我們一聲。”A、 適配器B、職責鏈C、觀察者D、迭代器簡答題1. 什么是設計模式,它包含那些基本要素? 設計模式是一套反復使用的、多數人知曉、經過分類編目的、代碼設計經驗的總結,使用設計模式是為了可重用代碼、讓代碼更容易被他人理解并且提高代碼的可靠性。設計模式是一種用于對軟件系統中不斷重現的設計問題的解決方案進行文檔化的技術,也是一種共享專家設計經驗的技術。設計模式

19、的基本要素:模式名稱、問題、目的、解決方案、效果、實例代碼、相關設計模式(其中有4個關鍵要素:模式名稱、問題、解決方案、效果)2. 設計模式如何分類,每一類設計模式有何優點? (1)根據目的可分為創建型,結構型和行為型; 創建型模式主要用于創建對象 結構型模式主要用于處理類或對象的組合 行為型模式主要用于描述類或對象如何交互和怎樣分配職責 (2)根據范圍,即模式主要是處理類之間的關系還是處理對象之間的關系,可分為類模式和對象模式; 類模式處理類和子類之間的關系,這些關系通過繼承建立,在編譯時刻就被確定下來,是一種靜態關系 對象模式處理對象間的關系,這些關系在運行時變化,更具動態性3. 設計模式

20、具有哪些優點?(1)融合了眾多專家的經驗,并以一種標準的形式供廣大開發人員所用(2)提供了一套通用的設計詞匯和一種通用的語言,以方便開發人員之間進行溝通和交流,使得設計方案更加通俗易懂(3)讓人們可以更加簡單方便地復用成功的設計和體系結構(4)使得設計方案更加靈活,且易于修改(5)將提高軟件系統的開發效率和軟件質量,且在一定程度上節約設計成本(6)有助于初學者更深入地理解面向對象思想,方便閱讀和學習現有類庫與其他系統中的源代碼,還可以提高軟件的設計水平和代碼質量4. 常見的設計模式有哪些優點?簡單工廠模式:(1)實現了對象創建和使用的分離;(2)客戶端無須知道所創建的具體產品類的類名,只需要知

21、道具體產品類所對應的參數即可;工廠方法模式:(1)工廠方法用來創建客戶所需要的產品,同時還向客戶隱藏了哪種具體產品類將被實例化這一細節;(2)能夠讓工廠自主確定創建何種產品對象,而如何創建這個對象的細節則完全封裝在具體工廠內部;(3)在系統中加入新產品時,完全符合開閉原則;單例模式:(1)提供了對唯一實例的受控訪問;(2)可以節約系統資源,提高系統的性能;原型模式:(1)簡化對象的創建過程,通過復制一個已有實例可以提高新實例的創建效率擴展性較好;(2)提供了簡化的創建結構,原型模式中產品的復制是通過封裝在原型類中的克隆方法實現的,無須專門的工廠類來創建產品;(3)可以使用深克隆的方式保存對象的

22、狀態,以便在需要的時候使用,可輔助實現撤銷操作;適配器模式:(1)將目標類和適配者類解耦,通過引入一個適配器類來重用現有的適配者類,無須修改原有結構;(2)增加了類的透明性和復用性,提高了適配者的復用性,同一個適配者類可以在多個不同的系統中復用;(3)靈活性和擴展性非常好;裝飾模式:(1)對于擴展一個對象的功能,裝飾模式比繼承更加靈活,不會導致類的個數急劇增加;(2)可以通過一種動態的方式來擴展一個對象的功能,通過配置文件可以在運行時選擇不同的具體裝飾類,從而實現不同的行為;(3)可以對一個對象進行多次裝飾;(4)具體構件類與具體裝飾類可以獨立變化,用戶可以根據需要增加新的具體構件類和具體裝飾

23、類,且原有類庫代碼無須改變,符合開閉原則;代理模式:(1)能夠協調調用者和被調用者,在一定程度上降低了系統的耦合度;(2)客戶端可以針對抽象主題角色進行編程,增加和更換代理類無須修改源代碼,符合開閉原則,系統具有較好的靈活性和可擴展性;橋梁模式:(1)需要在抽象化和具體化之間增加更多的靈活性,避免在兩個層次之間建立靜態的繼承關系;(2)抽象部分和實現部分可以以繼承的方式獨立擴展而互不影響;(3)一個類存在兩個(或多個)獨立變化的維度,且這兩個(或多個)維度都需要獨立地進行擴展不希望使用繼承或因為多層繼承導致系統類的個數急劇增加的系統;觀察者模式:(1)可以實現表示層和數據邏輯層的分離;(2)在

24、觀察目標和觀察者之間建立一個抽象的耦合;(3)支持廣播通信,簡化了一對多系統設計的難度;(3)符合開閉原則,增加新的具體觀察者無須修改原有系統代碼,在具體觀察者與觀察目標之間不存在關聯關系的情況下,增加新的觀察目標也很方便;命令模式:(1)降低了系統的耦合度;(2)新的命令可以很容易地加入到系統中,符合開閉原則;(3)可以比較容易地設計一個命令隊列或宏命令(組合命令);(4)為請求的撤銷(Undo)和恢復(Redo)操作提供了一種設計和實現方案;5. 透明與半透明模式透明模式:客戶端完全對抽象編程;半透明模式:使用具體裝飾類型定義裝飾之后的類,而具體構件可以繼續使用抽象構件類型來定義;不可以實

25、現對同一個對象的多次修飾。6. 設計原則的概念(前四個)、優點。單一職責原則:一個對象應該只包含單一的職責,并且該職責被完整地封裝在一個類中。優點:(1)類的復雜度降低,實現什么職責都有清晰明確的定義;(2)可讀性提高;復雜度降低,那當然可讀性提高了;(3)可維護性提高,可讀性提高,那就更容易維護了;(4)變更引起的風險降低;也就是說提高了擴展性和可維護性開閉原則:軟件實體應當對擴展開放,對修改關閉。優點:方便對系統進行擴展,在擴展時無需修改代碼,提高系統的穩定性和延續性。里士代換原則:所有引用基類的地方必須能透明地使用其子類的對象。優點:運行時,子類實例替換父類實例,可以很方便地擴展系統的功

26、能,無須修改原有子類的代碼,增加一個新的功能可以通過增加一個新的子類來實現。依賴倒轉原則:高層模塊不應該依賴低層模塊,它們都應該依賴抽象。抽象不應該依賴于細節,細節應該依賴于抽象。優點:系統具有很好的靈活性,當系統行為發生變化,只需要對抽象層進行擴展,在不修改的情況下來擴展系統的功能。7.淺克隆與深克隆的區別淺克隆:當原型對象被復制時,只復制它本身和其中包含的值類型的成員變量,而引用類型的成員變量并沒有復制;深克隆:除了對象本身被復制外,對象所包含的所有成員變量也將被復制;8.分析理解餓漢式和懶漢式單例的異同。共同點:餓漢式單例類和懶漢式單例類的構造函數都是私有的。餓漢式單例類:無須考慮多個線

27、程同時訪問的問題;調用速度和反應時間優于懶漢式單例;資源利用效率不及懶漢式單例;系統加載時間可能會比較長懶漢式單例類:實現了延遲加載;必須處理好多個線程同時訪問的問題;需通過雙重檢查鎖定等機制進行控制,將導致系統性能受到一定影響9.什么是雙重鎖定?為什么要進行雙重鎖定,JAVA中如何實現雙重鎖定。 定義:是一種對單例對象創建進行控制的雙重判斷機制。 目的:更好地對單例對象的創建進行控制。實現過程:在雙重檢查鎖定中,當實例不存在且同時有兩個線程調用Get Instance()方法時,它們都可以通過第一重“instance=null”判斷,如果此時不進行“instance=null”判斷,第二個線

28、程并不知道實例已經創建,將會創建新的實例,還會產生多個單例對象,違背了單例模式的設計思想。代碼題1. (簡單工廠模式)使用簡單工廠模式模擬女媧(Nvwa)造人(Person),如果向造人的工廠方法傳入參數“M”,則返回一個男人(Man)對象,如果傳入參數“W”則返回一個女人(Woman)對象,繪制相應的類圖并使用JAVA語言模擬實現該場景。先需要增加一個新的機器人類,如果傳入參數“R”則返回一個機器人(Robot)對象,對代碼進行修改并注意女媧類的變化。Person.javapublic interface Person public void personmethod();Manperson

29、.javapublic class ManPerson implements Personpublic void personmethod()System.out.println("男人");Woman.javapublic class WomanPerson implements Person public void personmethod()System.out.println("女人");Creator.javapublic class Creator public static Person createperson(String type)P

30、erson person = null;if(type.equals("M")person = new ManPerson();else if(type.equals("W")person = new WomanPerson();return person;Client.javapublic class Client public static void main(String args) Person person;person = Creator.createperson("W"); person.personmethod();2

31、. (簡單工廠方法)使用簡單工廠方法模式設計一個可以創建一個不同幾何形狀,如圓形、矩形、三角形等繪圖工具類,每個幾何圖形均具有繪制、擦除兩個方法,要求在繪制不支持的集合圖形時,拋出一個異常,繪制類圖并使用JAVA語言編程模擬實現。類似上面3. (工廠方法模式)寶馬(BMW)工廠制造寶馬汽車,奔馳(Benz)工廠制造奔馳汽車。使用工廠方法模式模擬場景,要求繪制相應的類圖,并用JAVA語言編程模擬實現Creator.javapublic interface Creator public Product factory();BMWCreator.javapublic class BMWCreator

32、 implements Creatorpublic Product factory()return new BMWProduct();BenzCreator.javapublic class BenzCreator implements Creatorpublic Product factory()return new BenzProduct();Product.javapublic interface Product BenzProduct.javapublic class BenzProduct implements Productpublic void BenzProduct()Syst

33、em.out.println("奔馳被創造");BMWProduct.javapublic class BMWProduct implements Productpublic void BMWProduct()System.out.println("寶馬被創造");Client.javapublic class Client public static Creator c1,c2;public static Product p1,p2;public static void main(String args) c1 = new BenzCreator();

34、p1 = c1.factory();c2 = new BenzCreator();p2 = c2.factory();4. (工廠方法模式)某數據統計系統中,曲線圖創建器生成曲線圖,柱狀圖創建器生成柱狀圖。試用工廠方法模式設計該系統,要求繪制相應的類圖,并用JAVA語言編程模擬實現。類似5. (原型模式)為某銷售系統設計一個客戶類Customer,在客戶類中包含一個名為客戶地址的成員變量,客戶地址的類型為Address,用淺克隆和深克隆分別實現Customer對象的復制,并比較兩種方式的異同。6. (單例模式)某軟件公司開發人員要創建一個數據庫連接池將指定個數(如兩個或3個)數據庫連接對象存儲

35、在連接池中,客戶端代碼可以從池中隨機取一個連接對象來連接數據庫,試通過對單例類進行改造,設計一個能夠自行提供滴定個數實例對象的數據庫連接類并用JAVA語言編程模擬實現。7. (觀察者模式)“貓Cat大叫一聲,老鼠Mouse開始逃跑,主人Master被驚醒”。這個過程蘊含了哪種設計模式?要求繪制相應的類圖,并用JAVA語言編程模擬實現。8. (命令模式)房間中的開關就是命令模式的一個實現,試用命令模式來模擬開關的功能,可控制對象包括電燈和電風扇,繪制相應的類圖并使用JAVA語言編程模擬。 AbstractCommand.javapublic abstract class AbstractComm

36、and public abstract void open(); public abstract void close(); Switch.javapublic class Switch private AbstractCommand abstractCommand; public void setComman(AbstractCommand abstractCommand) this.abstractCommand = abstractCommand; public void open() abstractCommand.open(); public void close() abstrac

37、tCommand.close(); FunCommand.javapublic class FunCommand extends AbstractCommand private Fun fun = new Fun(); public void open() fun.open(); public void close() fun.close(); LightCommand.javapublic class LightCommand extends AbstractCommand private Light light = new Light(); public void open() light

38、.open(); public void close() light.close(); Fun.javapublic class Fun public void open() System.out.println("開風扇"); public void close() System.out.println("關風扇"); Light.javapublic class Light public void open() System.out.println("開燈"); public void close() System.out.pri

39、ntln("關燈"); public class Client public static void main(String args) Switch s = new Switch(); AbstractCommand ac;ac = (AbstractCommand)XMLUtil.getBean(); s.setComman(ac); s.open(); s.close(); public class public class Client public static void main(String args) Switch s = new Switch(); Abs

40、tractCommand ac;ac = (AbstractCommand)XMLUtil.getBean(); s.setComman(ac); s.open(); s.close(); public static void main(String args) Switch s = new Switch(); AbstractCommand ac;ac = (AbstractCommand)XMLUtil.getBean(); s.setComman(ac); s.open(); s.close(); 9. (代理模式)在一個論壇中已注冊用戶和游客的權限不同,已注冊的用戶擁有發帖、修改自己的注冊信息、修改自己的帖子等功能;而游客只能看到別人發的帖子,沒有其他權限。試用保護代理來設計該權限管理模塊AbstractPermission.javapublic interface AbstractPermission public void modifyUserInfo(); public void viewNote(); public void pulishNote(); public void modifyNote(); public void setLe

溫馨提示

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

最新文檔

評論

0/150

提交評論