




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件架構(gòu)設(shè)計指南一、軟件架構(gòu)設(shè)計當對象、類、構(gòu)件、組件等概念出現(xiàn)并成熟之后,傳統(tǒng)意義上的軟件概要設(shè)計(或軟件系統(tǒng)設(shè)計),就逐漸改名為軟件架構(gòu)設(shè)計。所以說,軟件架構(gòu)設(shè)計就是軟件概要設(shè)計。軟件架構(gòu)設(shè)計工作由架構(gòu)師來完成,架構(gòu)師是主導系統(tǒng)全局分析設(shè)計和實施、負責軟件構(gòu)架和關(guān)鍵技術(shù)決策的角色,他的具體職責為:領(lǐng)導與協(xié)調(diào)整個項目中的技術(shù)活動(分析、設(shè)計入實施等)推動主要的技術(shù)決策,并最終表達為軟件構(gòu)架描述確定和文檔化系統(tǒng)中對構(gòu)架而言意義重大的方面,包括系統(tǒng)的需求、設(shè)計、實施和部署等“視圖”確定設(shè)計元素的劃分以及這些主要分組之間的接口為技術(shù)決策提供規(guī)則,平衡各類涉眾的不同關(guān)注點,化解技術(shù)風險,并保證相關(guān)決
2、定被有效傳達和貫徹理解、評價并接收系統(tǒng)需求評價和確認軟件架構(gòu)的實現(xiàn)二、軟件架構(gòu)基本概念軟件架構(gòu)定義系統(tǒng)是部件的集合,完成一個特定的功能或完成一個功能集合。架構(gòu)是系統(tǒng)的基本組織形式,描述系統(tǒng)中部件間及部件與環(huán)境音質(zhì)相互關(guān)系。架構(gòu)是指導系統(tǒng)設(shè)計和深化的原則。系統(tǒng)架構(gòu)是實體、實體屬性以及實體關(guān)系的集合。軟件架構(gòu)是軟件部件、部件屬性以及客觀存在們之間相互作用的集合,描述軟件系統(tǒng)的基本屬性和限制條件。5.2軟件架構(gòu)建模軟件架構(gòu)建模是與軟件架構(gòu)的定義和管理相關(guān)的分析、設(shè)計、文檔化、評審及其他活動。軟件架構(gòu)建模的目的:捕獲早期的設(shè)計決策。軟件架構(gòu)是最早的設(shè)計決策,它將影響到后續(xù)設(shè)計、開發(fā)和部署,對后期維護和
3、演變也有很大的影響。捕獲軟件運行時的環(huán)境。為底層實現(xiàn)提供限制條件。為開發(fā)團隊的結(jié)構(gòu)組成提供依據(jù)。設(shè)計系統(tǒng)滿足可靠性、可維護性以及性能等方面的要求。方便開發(fā)團隊之間的交流。5.3軟件架構(gòu)視圖軟件架構(gòu)視圖是指從一個特定的視角對系統(tǒng)或系統(tǒng)的一部分進行的描述。架構(gòu)可以用不同的架構(gòu)視圖進行描述,如邏輯視圖用于描述系統(tǒng)功能,進程視圖用于描述系統(tǒng)并發(fā),物理視圖用于描述系統(tǒng)部署。常見的有RUP的4+1視圖;火龍果整理5.4軟件架構(gòu)設(shè)計需包括:軟件系統(tǒng)中包含了哪些子系統(tǒng)和部件;每個子系統(tǒng)和部件都完成哪些功能;子系統(tǒng)和部件對外提供或使用外部的哪些;子系統(tǒng)和部件間的依賴關(guān)系,以及對實現(xiàn)和測試的影響;系統(tǒng)是如何部署的
4、。三、軟件架構(gòu)設(shè)計步驟3.1確定影響整體技術(shù)方案的因素考察用戶界面的整體復雜度要求:識別重點模塊的主要信息輸入,和輸入途徑方法:通過重點模塊畫制的魯棒圖進行分析;技巧簡單數(shù)據(jù)輸入數(shù)據(jù)的表態(tài)靜態(tài)視圖可定制視圖數(shù)據(jù)的動態(tài)視圖例如登入界面用戶界面的復雜度可概括為以下幾種:例如商品報價列表(例如可自定義查詢報告界面)例如實時運行監(jiān)控視窗/交互式圖形(例如系統(tǒng))考察用戶界面部署的約束要求:識別系統(tǒng)的部署環(huán)境和客戶端的使用環(huán)境;方法:主要通過訪談和觀察,識別客戶端環(huán)境;技巧用戶界面的部署約束可概括為以下幾種:/經(jīng)常要離線工作的移動電腦/手持智能終端如智能手機、/支持網(wǎng)上的任何一種瀏覽器(老版本瀏覽器)/支
5、持網(wǎng)上的較新版本瀏覽器/支持內(nèi)部網(wǎng)上的較新版本瀏覽器/支持內(nèi)部網(wǎng)上的特定瀏覽器/內(nèi)部網(wǎng)上的專用工作站(傳統(tǒng)架構(gòu)的客戶端軟件)考察用戶的數(shù)量和類型要求:需大致識別出本系統(tǒng)用戶的數(shù)量級別和類型;方法:主要通過了解客戶背景信息,識別根據(jù)不同角色所對應(yīng)的人數(shù)和類型;技巧用戶的數(shù)量和類型可概括為以下幾種:/少數(shù)的專業(yè)用戶:關(guān)注功能強大,期望量身定制,樂于學習新特性,例如圖形制作系統(tǒng)的用戶;/組織內(nèi)的日常使用者:主流用戶,關(guān)注便捷和易用,例如考勤系統(tǒng)用戶;/大量的愛好者:對系統(tǒng)的功能有執(zhí)著的興趣,有意愿克服使用時遇到的的各種困難,包括軟件本身的缺陷,例如游戲軟件的用戶/數(shù)量巨大的消費型用戶:關(guān)注速度和服務(wù)
6、感受,例如商業(yè)網(wǎng)站的用戶)考察系統(tǒng)接口類型要求:正確合理的識別系統(tǒng)中存在的接口和類型,本處重點的是識別外部存在的接口。方法:協(xié)作決定接口,見第四章;技巧系統(tǒng)接口類型可概括為以下幾種:/數(shù)據(jù)傳輸:僅僅為了滿足系統(tǒng)間交換數(shù)據(jù)的需要,例如電子數(shù)據(jù)交換接口、數(shù)據(jù)庫同步等/通過協(xié)議提供服務(wù):系統(tǒng)依照協(xié)議向外提供特定的服務(wù),例如協(xié)議、協(xié)議等/直接訪問系統(tǒng)服務(wù):按照類似于系統(tǒng)內(nèi)部調(diào)用的方式,直接使用系統(tǒng)的方法,例如基于遠程調(diào)用等)考察數(shù)據(jù)性能和可伸縮性要求:正確識別是否存在大量的并發(fā)數(shù)據(jù)處理方法技巧性能和可伸縮性方面可概括為以下幾種:/只讀:只有對數(shù)據(jù)瀏覽和查詢操作,例如股票行情分析系統(tǒng)/獨立的數(shù)據(jù)更新:對
7、數(shù)據(jù)的修改操作,但各用戶的修改完全隔離,相互間不存在任何潛在的沖突,例如網(wǎng)上商店各顧客對自己帳單的管理/并發(fā)的數(shù)據(jù)更新:并發(fā)用戶對數(shù)據(jù)的修改將相互影響,或者就是更改了同一數(shù)據(jù),例如多個用戶同時使用航班預定系統(tǒng)預定同一航班的座位2選擇軟件構(gòu)架樣式(風格)要求根據(jù)前期細致的需求分析,選擇合理適用的軟件架構(gòu)樣式;方法:最常用的是使用三層或四層架構(gòu);技巧軟件架構(gòu)樣式的常見種類有:/數(shù)據(jù)流構(gòu)架:是實現(xiàn)可重用性和可更改性,它的特點是把系統(tǒng)看作是對相繼輸入數(shù)據(jù)的一系列變換;/調(diào)用與返回構(gòu)架:一直是中大型軟件系統(tǒng)的主流構(gòu)架樣式,它的目標是實現(xiàn)系統(tǒng)的可更更改性和可擴展性。/獨立組件構(gòu)架:由許多通過發(fā)送消息進行通
8、訊的獨立進程或火龍果整理火龍果整理對象組成,它的目標是通過解除各運算部分之間的耦合實現(xiàn)可更改性,如股票機、各類短信預定等。目前我們常用的是調(diào)用和返回構(gòu)架中的分層構(gòu)架模式,是一種將系統(tǒng)行為或功能通過以層為首要的組織單位來進行分配(劃分)的結(jié)構(gòu)模式。/展現(xiàn)層展現(xiàn)給用戶的界面,即用戶在使用一個系統(tǒng)的時候他的所見所得;/業(yè)務(wù)邏輯層:根據(jù)系統(tǒng)的大小,又可以拆分為:業(yè)務(wù)接口層、業(yè)務(wù)實現(xiàn)層、業(yè)務(wù)實體層它的關(guān)注點主要集中在業(yè)務(wù)規(guī)則的制定、業(yè)務(wù)流程的實現(xiàn)等與業(yè)務(wù)需求有關(guān)的系統(tǒng)設(shè)計;/數(shù)據(jù)訪問層有時候也稱為是持久層,其功能主要是負責數(shù)據(jù)庫的訪問,可以訪問數(shù)據(jù)庫系統(tǒng)、二進制文件、文本文檔或是文檔;實現(xiàn)對數(shù)據(jù)表的,的
9、操作;如果要加入的元素,那么就會包括對象和數(shù)據(jù)表之間的p以及對象實體的持久化。3利用可復用的資產(chǎn)要求:在需求及設(shè)計階段,正確識別現(xiàn)有可被復用的資產(chǎn)方法:/可復用的資產(chǎn)包括:工具、組件、框架、模版、設(shè)計等;/項目經(jīng)理對項目設(shè)計中可能用到的資產(chǎn)情況進行評估,并向技術(shù)經(jīng)理提出申請,將資源引入到本設(shè)計中;/技術(shù)經(jīng)理對項目中可能會用到的資產(chǎn)情況進行檢查確認;4子系統(tǒng)的劃分和接口的定義目的/支持個人或團隊進行獨立的開發(fā)/層次、包的劃分,為團隊的分工協(xié)作提供最直接的依據(jù)/子系統(tǒng)的劃分,使得團隊成員之間的依賴關(guān)系最小化,從而支持并行開發(fā)(方便集成)/為方便測試而進行劃分,包、子系統(tǒng)及其接口的定義,應(yīng)當支持被獨
10、立地加以測試要求和方法:見第四章內(nèi)容5優(yōu)化設(shè)計,包括去冗余和提高重用性方法/通過劃分而去冗余將系統(tǒng)劃分為職責更為集中和明確的模塊(例如,對象、子系統(tǒng)、子程序等),相同的行為將通過調(diào)用一模塊來實現(xiàn),從而避免重復的組成元素分散于系統(tǒng)各處;識別對象,并將職責分配給合適的對象,其它對象將委托它來完成對應(yīng)的行為讓對象通過組合來復用已有對象的服務(wù)/通過泛化而去冗余將共性的行為抽取出來,專門在一處單獨定義;所有類似行為的實現(xiàn),將關(guān)注于那些個性方面,共性方面直接從前述之處繼承,而不再重復實現(xiàn)面向?qū)ο蠓缎拖?,父類實現(xiàn)共性的行為,并定義一些可重載的方法,在父方法中調(diào)用,然后讓子類重載它們以便擴展個性行為(參考模板
11、方法模式)泛化的去冗余途徑,主要是避免重復實現(xiàn)一些較大粒度框架性的行為,小粒度的行為復用應(yīng)當使用前述的劃分途徑/通過模塊化而去冗余使用模板來定義共性的結(jié)構(gòu)和行為,并留出某些變量,這些變量對模板而言是行為敏感的;在具體的應(yīng)用場景,通過引入不同的參數(shù)變量,從而導出眾多個性化的行為組合面向?qū)ο蠓缎拖?,主要有模板類、模板函?shù)等方式模板化去冗余途徑,形式主義是一種結(jié)構(gòu)(引入變量)與(模板)行為的二元組合,其實質(zhì)是避免行為的重復定義/通過面向方面編程而去冗余將分散在系統(tǒng)代碼之間的,行使類似職能的代碼抽取出來,作為一個方面樣子,集中到一塊來處理(這些職能包括:日志記錄、權(quán)限驗證、資源的釋放、異常處理等),避
12、免類似代碼的到處重復泛濫四、軟件設(shè)計方法體系方法,三個階段,一個貫穿4.1需求進一步分析階段:全面了解客戶需求A第步,需求結(jié)構(gòu)化/從“不同層次的涉眾提出需求所站的立場不同”的角度,把需求劃分為三種類型,這就是需求的三個層次:業(yè)務(wù)需求:組織要達到的什么目標;用戶需求:用戶使用系統(tǒng)來做些什么事情;行為需求:開發(fā)人員需要實現(xiàn)什么;/從“需求定義直接目標還是間接限制”的角度,把需求劃分為三種類型,這就是需求的三個方面:功能需求:更多的體現(xiàn)各級直接的目標要求;質(zhì)量需求:開發(fā)期的質(zhì)量運行期的質(zhì)量;約束需求:業(yè)務(wù)環(huán)境因素使用環(huán)境因素構(gòu)建環(huán)境因素技術(shù)環(huán)境因素/常用需求層次需求方面二維矩陣圖進行表示:I廣文功能
13、質(zhì)量約束:組織需求)業(yè)務(wù)H標快好省標;隹性樹束法規(guī)世阿遺留手甌成技術(shù)趨勢瓷爭因耒與競爭対手用戶需求用廣石求運行期質(zhì)量用戶群特點用戶水干妄國語肓J開發(fā)需求1行為需求丿發(fā)期丿貞晁開喪團甜如幻K平開堆團賦磨諺度開發(fā)團臥分布睛遲開發(fā)因駅業(yè)射0識音理;保密姜求苣理;產(chǎn)品誰1安裝維護圖需求層次一需求方面二維矩陣A第步,分析約束影響/來自客戶組織的約束性要求必須充分考慮到客戶上線時間的要求、預算的限制、以及集成需要等非功能需求;客戶所處的業(yè)務(wù)領(lǐng)域為何?有什么業(yè)務(wù)規(guī)則和業(yè)務(wù)限制?是否需要關(guān)注相應(yīng)的法律法規(guī)、專利限制?/來自用戶的約束性要求軟件將提供給合階層用戶?主要用戶的年齡段?使用偏好?使用的環(huán)境是否有影響
14、系統(tǒng)的?/來自開發(fā)者和維護人員的約束性要求開發(fā)團隊的技術(shù)水平能力、磨合程度、是否分布在不同城市,有何影響?開發(fā)管理方面、源代碼管理和保密方面、是否要顧及?/來自業(yè)界本身技術(shù)環(huán)境的約束性要求技術(shù)平臺、中間件、編程語言等的流行度、成熟度、認同度、優(yōu)缺點等的考慮;所使用的技術(shù)發(fā)展的趨勢如何,是否需要考慮?2塑造概念架構(gòu)階段:通過關(guān)鍵功能,進行初步設(shè)計A第步,初步設(shè)計/在第一階段確定關(guān)鍵的功能子集對于關(guān)鍵的功能子集,需要在需求列表上進行標注;/通過魯棒圖和職責協(xié)作鏈的原理,識別角色和他所對應(yīng)的職責;從事件流開始,對關(guān)鍵功能畫出用例圖和用例描述;開始尋找邊界對象,描述模外部環(huán)境和系統(tǒng)之間的交互進行建模,
15、通常指的就是交互,如;尋找控制對象,對行為進行封裝,描述用例中事件流的控制行為,也就是業(yè)務(wù)辦法,負責控制;尋找實體對象,對需要存儲的信息進行描述,通常指的就是我們的對象類,負責信息;A第步,高層分割/對于功能不是太復雜的,可以直接將黑盒系統(tǒng)切分為子系統(tǒng)的;/對于功能較為復雜的,需進行高級高層分割首先將黑盒系統(tǒng)切分為更小一級的系統(tǒng),每個更小一級的系統(tǒng)都可以有單獨的需求、設(shè)計、實現(xiàn)之后,針對每個“更小一級的系統(tǒng)”進行“切系統(tǒng)為子系統(tǒng)”A第步,考慮非功能需求/以場景技術(shù)為跳板的非功能設(shè)計思維發(fā)現(xiàn)場景功能性的考慮,是否準確,是否安全等;可靠性的考慮,安全性,容錯性,穩(wěn)定性;易用性,用戶體驗方面;效率的
16、問題,頁面載入時間,資源特性等;維護性的考慮,安裝便捷,功能修改方便;通過目標-場景-決策表,進行評估場景,并做出決策實例:火龍果整理火龍果整理火龍果整理火龍果整理圖:場景思維是方法核心8*M1決策*PM*統(tǒng)的用戶,棄劇虛windows、Uni備B/S架枸Urtin.上工憶能夠忖同PM系妮HK廉韋1工牯息,*善靖人而送互*無蠟從HRK統(tǒng)導人員工斛単入馳痂FM統(tǒng)的用幾也知理項目丈杜同片-PMACVSt?JO訕PM、CVS麻煩詡管瑞力*配工千理跟務(wù)5LtCVSi擁強持*Adapter對惓式*(掛CVS.Subvtmk等4.繃化ttW)DBMS,IlfeAOracle.SQLServer,如啊都-i
17、flORMfti9:j實例項目管理系統(tǒng)非功能性,目標場景決策表概念架構(gòu)階段合理的劃分子系統(tǒng)匕彌埔*袒/ffl.三個策略可飆Wind(附Unix.屁如軸竦層的細化卜加段3訛如將系統(tǒng)分為展現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)訪問層;又可在三層架構(gòu)中加入控制層,形成展現(xiàn)層、控制層、業(yè)務(wù)層、數(shù)據(jù)訪問層,將三層架構(gòu)轉(zhuǎn)換為四層架構(gòu);可以繼續(xù)細化,將業(yè)務(wù)層細化為業(yè)務(wù)接口層、業(yè)務(wù)實現(xiàn)層、業(yè)務(wù)實體層;通過不斷的細化,來降低系統(tǒng)的復雜度,提高開發(fā)人員的并行開發(fā)能力;火龍果整理火龍果整理分區(qū)的引入先做一個高級的廣度設(shè)計,然后馬上轉(zhuǎn)到深度優(yōu)先的底層設(shè)計和實現(xiàn)上去;分層分區(qū),如圖所示,是支持迭代和并行開發(fā)的基礎(chǔ);圖4:架構(gòu)中引入分區(qū),支
18、持迭代和并行機制的提取對于編程實現(xiàn)而言,在沒有提取機制的情況下,機制是一種隱式的重復代碼;對于邏輯架構(gòu)設(shè)計而言,機制是一種特殊的子系統(tǒng),在劃分子系統(tǒng)的時候不要遺忘;在實現(xiàn)不同的最終功能時,可以重用一種機制,避免重復進行“組裝”工作,如審批機制,權(quán)限機制,各個模塊和子系統(tǒng)都可以進行調(diào)用。/一個原理關(guān)注點分離的原則通過職責劃分來分離關(guān)注點;利用系統(tǒng)各部分的通用性不同進行關(guān)注點分離;根據(jù)不同顆粒度級別進行關(guān)注點分離;示意圖:肌責劃分職序劃分分通用模塊意圖5:關(guān)注點分離令職責不同的單元劃歸不同的子系統(tǒng)通用性不同的單元劃歸不同的子系統(tǒng);需要不同開發(fā)技能的劃歸不同的子系統(tǒng);兼顧工作量的相對均衡,進一步切分
19、太大的子系統(tǒng);合理的接口設(shè)計/把模塊放在協(xié)作的上下文中進行考慮,接口設(shè)計才有意義;/需要考慮的是“為了實現(xiàn)一系列的功能,這個軟件單元要和其它單元如何協(xié)作?”/協(xié)作決定接口,以此作為原則,依次在單元之間識別接口;細化初步設(shè)計中的魯棒圖,形成魯棒順序圖;見案例附件五、軟件設(shè)計經(jīng)驗之談5.1設(shè)計模式工廠模式工廠模式一般用于創(chuàng)建一類對象,而不用每次在使用時通過對象才能使用對象,而是通過工廠來完成對象的創(chuàng)建,這樣不但提供了統(tǒng)一創(chuàng)建對象的入口,而且對于程序的可維護和可測試性都有很大的提高。常用的場景有:工廠負責創(chuàng)建某一類對象的時候,或者說工廠的職責比較單一時,如果說多個類型的對象時候,用工廠模式就不如使用
20、抽象工廠了;一般比較少的積累對象,可以通過類型的判定創(chuàng)建不同的對象時,也是可以通過工廠模式來完成,例如多數(shù)據(jù)庫的支持,我們在設(shè)計數(shù)據(jù)訪問層時,利用簡單對象工廠,通過枚舉或者配置文件的形式,來動態(tài)的創(chuàng)建數(shù)據(jù)訪問層實例。一般來說類型單一的對象,或者類型比較少的時候,使用工廠模式來創(chuàng)建對象可以解決一類問題。還可以通過一個總的工廠,來創(chuàng)建多個工廠,然后多個工廠負責創(chuàng)建相應(yīng)的實例,有點類似我們平時說的目錄結(jié)構(gòu)似的。代理模式代理模式是一種結(jié)構(gòu)型設(shè)計模式,“增加一層間接層”是軟件系統(tǒng)中對許多負責問題的一種常見解決方法。在面向?qū)ο笙到y(tǒng)中,直接使用某些對象會帶來很多問題,作為間接層的對象便是解決此類問題。常用的
21、場景有:在我們?nèi)粘5墓ぷ髦幸渤3S玫酱砟J剑热鐚τ谌龑咏Y(jié)構(gòu)中數(shù)據(jù)訪問層,它把對數(shù)據(jù)庫的訪問進行封裝。業(yè)務(wù)層的開發(fā)者只是調(diào)用中的方法來獲得數(shù)據(jù);具體設(shè)計模式的實現(xiàn)方法、實現(xiàn)粒度都相差很大,有些可能對單個對象作細粒度的控制,有些可能對組件模塊提供抽象代理層,在架構(gòu)層次對對象作;并不一定要求保持接口的一致性,只要能夠?qū)崿F(xiàn)間接控制,有時候損及一些透明性是可以接受的。單例模式保證一個類只有一個實例,并提供一個訪問它的全局訪問點。它的應(yīng)用場景比較廣:比如在某個服務(wù)器程序中,該服務(wù)器的配置信息存放在一個文件中,這些配置數(shù)據(jù)由一個單例對象統(tǒng)一讀取,然后服務(wù)進程中的其他對象再通過這個單例對象獲取這些配置信息
22、;可以使用它創(chuàng)建一個連接池,每次程序需要往數(shù)據(jù)庫中寫入內(nèi)容時才創(chuàng)建一個新連接的做法并不明智;相反,一個或一組已經(jīng)在池中的連接就可以使用模式實例化;比如有互策的訂票機制,我們可以采用單例模式,只實例化一次來操作訂票.建造者模式建造者模式可以將一個產(chǎn)品的內(nèi)部表象與產(chǎn)品的生成過程分割開來,從而可以使一個建造過程生成具有不同的內(nèi)部表象的產(chǎn)品對象。常用的場景有:需要生成的對象有復雜的內(nèi)部結(jié)構(gòu)。需要生成的對象的屬性相互依賴,建造者模式可以強迫生成順序。在對象創(chuàng)建過程中會使用到系統(tǒng)中的一些其它對象,這些對象在對象的創(chuàng)建過程中不易得到。觀察者模式在一對多依賴的對象關(guān)系中,如果這個一對象狀態(tài)發(fā)生了變化,那么它所
23、有依賴的多對象都應(yīng)該被通知,然后做相應(yīng)的變化,這就是觀察者模式,它的常用場景有:當一個對象的改變需要通知或同時需要改變其它對象的時候;比如我們要建一個網(wǎng)上購物商城,對于用戶訂購的商品信息,如果該商品的價格、促銷活動等發(fā)生變換,系統(tǒng)將會自動發(fā)生郵件通知到用戶,則就是典型的觀察者模式;在現(xiàn)實生活中,拍賣行拍賣物品也是一個典型的觀察者模式,拍賣師拍賣時,他觀察是否有牌子舉起出價。每次接受一個新的出價都會改變拍賣的當前價格,并廣播通知給所有競標人,競標人則進行新的出價和退出。裝飾模式能動態(tài)的將職責附加到對象上去,若要擴展功能,裝飾者提供了比繼承更具彈性的代替方案。裝飾模式提供了一個非常好的解決方案,它把每個需要裝飾的功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度上市公司股份回購退股協(xié)議
- 2025年度高科技園區(qū)土地租賃服務(wù)協(xié)議
- 二零二五年度房屋租賃合同租賃物能源消耗管理補充協(xié)議
- 二零二五年度商業(yè)地產(chǎn)租賃合同(含品牌推廣合作)
- 二零二五年度玉米種植戶土地流轉(zhuǎn)與收購合作協(xié)議
- 2025年度車輛出借免責協(xié)議書:車輛租賃合同違約責任及賠償辦法合同
- 一年級家校共育發(fā)言稿
- 白酒品鑒會發(fā)言稿
- 大學第一課發(fā)言稿
- 2025年沈陽道路運輸從業(yè)資格證考試內(nèi)容是什么
- 《月歷上的數(shù)字的奧秘》
- 護理文書書寫規(guī)范PDCA
- 一般工業(yè)固體廢物分類及利用處置方式(2020年)
- 軟件工程導論課件(第六版)(張海潘編著)(1-13章)
- 藥物化學題庫與答案
- 《新時期產(chǎn)業(yè)工人隊伍建設(shè)改革方案》全文
- 民法總論民事法律關(guān)系
- 三年級數(shù)學研課標說教材課件
- 山西水庫壩坡混凝土施工方案(含冬季施工)
- 教學設(shè)計的理論基礎(chǔ)與基本方法
- 國資委建立和完善央企職工代表大會制度指導意見
評論
0/150
提交評論