freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

高級軟件架構(gòu)設(shè)計(jì)(專業(yè)版)

2024-09-22 00:15上一頁面

下一頁面
  

【正文】 ? 控制器 : ? 控制器負(fù)責(zé)交互和將用戶輸入的數(shù)據(jù)導(dǎo)入模型 ,它還利用用戶的輸入將應(yīng)用轉(zhuǎn)向其他視圖。 206 客戶 /服務(wù)器( Client/Server) ? 系統(tǒng)分為客戶和服務(wù)器,服務(wù)器一直處于偵聽的狀態(tài),客戶主動(dòng)連接服務(wù)器,每個(gè)服務(wù)器可以為多個(gè)客戶服務(wù)。 202 優(yōu)點(diǎn)與缺點(diǎn) ? 優(yōu)點(diǎn): ? 結(jié)構(gòu)簡單:系統(tǒng)的行為是所有過濾器行為的簡單復(fù)合。 200 ? 問題: ? 一個(gè)必須處理或轉(zhuǎn)換輸入數(shù)據(jù)流的系統(tǒng)。它們是數(shù)據(jù)層( data layer)、商務(wù)層( business layer)和表示層( presentation layer)。 ? .NET 框架對 Web 站點(diǎn)的支持: ? 在編寫 Windows 軟件(使用 ATL/COM、 MFC、 VB或標(biāo)準(zhǔn) Win32)方面,與當(dāng)前創(chuàng)建應(yīng)用程序的方式相比 .NET都具有的優(yōu)勢。這些決定中會(huì)有很多是一旦作出,就很難更改的。 ? 可伸縮性( Scalable) : – 軟件必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下,保持合理的性能。有些用戶希望聽到撥號聲 ,有些用戶則希望他們的調(diào)制解調(diào)器保持安靜 。 163 問題 ? 假設(shè)需要向該層次結(jié)構(gòu)中增加一個(gè)新方法 confrgureForUnix。 ? 用 Shape類來封裝擁有的形狀的概念 。 。 ? 該日志要求被記錄到指定的文本文件中,記錄的內(nèi)容屬于字符串類型,其值由客戶提供。如果是,每個(gè)這些 內(nèi)聚職責(zé)集合可能獨(dú)立成類。我們以給定類與其他類具有關(guān)系的數(shù)目來度量類間的耦合度。 問題域是首先產(chǎn)生軟件系統(tǒng)(以及從此而來的軟件開發(fā)活動(dòng))需求的域。 ? 不是事件流。 106 UML中的關(guān)系 ? UML中的關(guān)系 (Relationships )主要包括 4種 : ? 關(guān)聯(lián)關(guān)系 ? 依賴 ( Dependency)關(guān)系 ? 泛化 ( Generalization )關(guān)系 ? 實(shí)現(xiàn) ( Realization )關(guān)系 107 一些常見問題辨析 ? 類的層次結(jié)構(gòu)表示 ? 屬性與聚合 ? 關(guān)聯(lián)角色 ? 關(guān)聯(lián)類 108 層次結(jié)構(gòu) P a r t A s s e m b l yI C o m p o n e n t*109 領(lǐng)域建模-重?cái)?shù) 110 細(xì)化類模型 111 關(guān)聯(lián)角色 ? 關(guān)聯(lián)角色名出現(xiàn)在關(guān)聯(lián)終端的旁邊。 } return (Movie[]) (new Movie[()])。 } 91 需求在變化 ? 用戶希望 Copy程序能從紙帶讀入機(jī)中讀入信息。 EJB風(fēng)格的過程式設(shè)計(jì)往往需耍修改核心代碼。 ? ┏━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━┓ ? ┃ ┃ 典型的 EJB方法 ┃ POJO方法 ┃ ? ┣━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━┫ ? ┃ 組織 ┃ 過程式業(yè)務(wù)邏輯 ┃ 面向?qū)ο笤O(shè)計(jì) ┃ ? ┣━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━┫ ? ┃ 實(shí)現(xiàn) ┃ 基于 EJB ┃ POJO ┃ ? ┣━━━━━━━━━╋━━━━━━━━━━━━━━━┻━━━━━━━┫ ? ┃ 數(shù)據(jù)庫訪問 ┃ JDBC/SQL或?qū)嶓w bean ┃ 持久層框架 ┃ ? ┣━━━━━━━━━╋━━━━━━━━━━━━━━━┳━━━━━━━┫ ? ┃ 返回給表示層的數(shù)據(jù) ┃ DTO ┃ 業(yè)務(wù)對象 ┃ ? ┣━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━┫ ? ┃ 事務(wù)管理 ┃ EJB容器管理的事務(wù) ┃ Spring框架 ┃ ? ┣━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━┫ ? ┃ 應(yīng)用程序組裝 ┃ 顯式的 JNDI查詢 ┃ 依賴注入 ┃ ? ┗━━━━━━━━━┻━━━━━━━━━━━━━━━┻━━━━━━━┛ 62 ? 新設(shè)計(jì)是面向?qū)ο?、基?POJO, 而非基于 EJB的過程式。 ? Service(事務(wù)封裝 ) ? DO ? DAO ? 優(yōu)點(diǎn): ? 符合 OO ? Service層很薄,只充當(dāng) Facade的角色,不和 DAO打交道。 – 倉庫 (repository)管理實(shí)體的集合 ,主要有查找和刪除實(shí)體的方法 .實(shí)現(xiàn)類可以調(diào)用執(zhí)久化層 (如 Hibernate, Ibatis) – 服務(wù) (Service) , 實(shí)現(xiàn)整個(gè)應(yīng)用程序的工作流 (workflow)。 22 軟件架構(gòu)師的任職條件 ? 根據(jù)軟件架構(gòu)師的職責(zé)和角色定位,以及知識(shí)體系,從實(shí)踐的角度考慮,合格的軟件架構(gòu)師應(yīng)該具有以下能力和經(jīng)驗(yàn): ? (1)具有 8年以上的軟件項(xiàng)目開發(fā)實(shí)際工作經(jīng)驗(yàn),其中至少有 3年以上的代碼編寫工作經(jīng)驗(yàn), 4年以上的基于面向?qū)ο蠛蜆?gòu)件開發(fā)方法的軟件產(chǎn)品設(shè)計(jì)經(jīng)驗(yàn)。 ? (3)典型系統(tǒng)應(yīng)用:包括網(wǎng)絡(luò)應(yīng)用、數(shù)據(jù)庫應(yīng)用和多媒體系統(tǒng)等方面的知識(shí)。 9 ? 以目標(biāo)導(dǎo)向和主動(dòng)的方式來不帶任何感情色彩地關(guān)注項(xiàng)目結(jié)果,構(gòu)架師應(yīng)當(dāng)是項(xiàng)目背后的技術(shù)推動(dòng)力,而非構(gòu)想者或夢想家(追求完美) ? 精通構(gòu)架設(shè)計(jì)的理論、實(shí)踐和工具,并掌握多種參考構(gòu)架、主要的可重用構(gòu)架機(jī)制和模式。 ? 二、很強(qiáng)的自學(xué)能力、分析能力、解決問題的能力。 – 了解多種應(yīng)用系統(tǒng)的結(jié)構(gòu)。 ? (4)系統(tǒng)設(shè)計(jì):包括處理流程設(shè)計(jì)、人機(jī)界面設(shè)計(jì)、文件與存儲(chǔ)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、網(wǎng)絡(luò)應(yīng)用系統(tǒng)的設(shè)計(jì)、系統(tǒng)運(yùn)行環(huán)境的集成與設(shè)計(jì)、中間件與應(yīng)用服務(wù)器、性能設(shè)計(jì)與性能評估等。往往在設(shè)計(jì)時(shí),實(shí)體的形為最難決斷。 ? 缺點(diǎn):行為與數(shù)據(jù)分離,很多情況導(dǎo)致維護(hù)與理解困難。 57 ? 原則: – 業(yè)務(wù)對象封裝了內(nèi)在的業(yè)務(wù)邏輯,而應(yīng)用服務(wù)封裝了外在于業(yè)務(wù)對象的業(yè)務(wù)邏輯。 64 65 ? 面向?qū)ο蟮膬?yōu)點(diǎn): ? 整個(gè)設(shè)計(jì)更易理解和維護(hù)。 – 違反了 LSP原則的本質(zhì)是派生類的行為與基類中的不一致。 } 93 依賴倒置原則( DIP) 康凱 94 相關(guān)概念 ? 關(guān)于解耦 – 依賴倒置( DIP) – 控制反轉(zhuǎn)( IoC) – 依賴注入( DI) – 服務(wù)定位器( SL) – 有些是手段,有些是原則,不過其間的差異并不太重要,更重要的是其共同點(diǎn):其根本目標(biāo)都是解除依賴,將組件的配置與使用分離開。 public MovieLister() { finder = new ColonDelimitedMovieFinder()。 ? Actor是“角色”,不是特定的人或特定的事。 116 倉庫信息系統(tǒng)的用例圖 117 借鑒 RUP的 UML建模與分析 118 全局分析 ? 全局分析側(cè)重于定義擬建系統(tǒng)所采用的構(gòu)架以及影響構(gòu)架的要素。它是內(nèi)聚的,因?yàn)樗械穆氊?zé)都朝著相同的目標(biāo) ─維護(hù)客戶已經(jīng)選擇的商品集合。 ? 當(dāng)心很多非常小的類 ─ 有時(shí)很難取得正確的平衡。 ? 將思考轉(zhuǎn)移到更高的視角。 – SqlDataAdapter adapter = new SqlDataAdapter()。 149 例 通過引入一個(gè) Rectangle 抽象類 , 利用了這一事 實(shí):不同的 Rectangle派 生類之間唯一的差異是如 何實(shí)現(xiàn) drawLine方法 。而工具箱的設(shè)計(jì)者無法知道請求的接受者或執(zhí)行的操作。這意味著報(bào)表可以被放置在不同的組件中 ,并且僅被那些需要它們的客戶單獨(dú)使用。 ? 詳細(xì)地說,就是要包括架構(gòu)元件( Architecture Component)、聯(lián)結(jié)器( Connector)、任務(wù)流( Taskflow)。 181 物理架構(gòu) ? 軟件元件是怎樣放到硬件上的 ? 下圖描述了一個(gè)分布于北京和上海的分布式系統(tǒng)的物理架構(gòu),圖中所有的元件都是物理設(shè)備,包括網(wǎng)絡(luò)分流器、代理服務(wù)器、 WEB服務(wù)器、應(yīng)用服務(wù)器、報(bào)表服務(wù)器、整合服務(wù)器、存儲(chǔ)服務(wù)器、主機(jī)等等。 186 為什么要用框架 ? 因?yàn)檐浖到y(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,設(shè)計(jì)到的知識(shí),內(nèi)容,問題太多。代碼模式的好壞會(huì)影響到一個(gè)中等尺度組件的內(nèi)部、外部的結(jié)構(gòu)或行為的底層細(xì)節(jié),但不會(huì)影響到一個(gè)部件或子系統(tǒng)的中等尺度的結(jié)構(gòu),更不會(huì)影響到系統(tǒng)的總體布局和大尺度框架。我們可以修改商務(wù)層,不斷地從數(shù)據(jù)層接受相同的數(shù)據(jù),并把這些數(shù)據(jù)傳遞到表示層,而不用擔(dān)心出現(xiàn)歧義。這些步驟采用通過系統(tǒng)的數(shù)據(jù)流連接。這種架構(gòu)主要用于數(shù)據(jù)庫和人工智能系統(tǒng)的開發(fā)。 ? 以 MVC模式構(gòu)造軟件 ,可以使得軟件結(jié)構(gòu)靈活、重用性好、擴(kuò)展性佳。 ? 協(xié)議無關(guān)性要求每一個(gè)服務(wù)都可以通過不同的協(xié)議來調(diào)用。大多數(shù)現(xiàn)代交互軟件都在一定程度上符合這一架構(gòu)模型的特點(diǎn)。 ? 同實(shí)現(xiàn)有關(guān),過濾器之間的數(shù)據(jù)傳輸率較低,而且每個(gè)過濾器都要作類似的數(shù)據(jù)打包和解包的工作。 – 存在不同的輸入數(shù)據(jù)源,可以用多種方式輸出或存放最終結(jié)果。 ? 數(shù)據(jù)層從數(shù)據(jù)庫中獲得較為原始的數(shù)據(jù),商務(wù)層把數(shù)據(jù)轉(zhuǎn)換成符合商務(wù)規(guī)則的有意義的信息,表示層把信息轉(zhuǎn)換成對于用戶有意義的內(nèi)容。設(shè)計(jì)模式定義出子系統(tǒng)或組件的微觀結(jié)構(gòu)。 ? 框架與架構(gòu)的區(qū)別? – 并無明確的定義,但一般從層的觀點(diǎn)看,認(rèn)為框架是底層的,接近系統(tǒng)的。以最快的速度爭奪市場先機(jī)非常重要。 171 172 常用的軟件架構(gòu)風(fēng)格及適用情況分析 康凱 173 ? 軟件架構(gòu) ? 軟件框架 ? 常見的架構(gòu)風(fēng)格 174 軟件架構(gòu)概論 ? 系統(tǒng)架構(gòu)是一個(gè)軟件系統(tǒng)從整體到部分的最高層次的劃分。這使得數(shù)據(jù)結(jié)構(gòu)對象中不含有任何產(chǎn)生報(bào)表的代碼。 – 例如,用戶界面工具箱包括按鈕和菜單這樣的對象,它們執(zhí)行請求響應(yīng)用戶輸入。 ? 抽象部分是指 “ 不同的事物在概念層次上的聯(lián)系 ” 。 ? 不用模式的做法:可以直接創(chuàng)建這些對象: – SqlConnection connection = new SqlConnection(strConnection)。 131 第四單元:設(shè)計(jì)模式與軟件設(shè)計(jì)思想 132 設(shè)計(jì)模式 133 設(shè)計(jì)模式在實(shí)際開發(fā)中的運(yùn)用 ? 復(fù)用現(xiàn)有的、高質(zhì)量的、針對常見的重復(fù)出現(xiàn)問題的解決方案。同樣,每個(gè)類應(yīng)該 同小部分類協(xié)作以提供所期望的功能。例如ShoppingBasket示例,你將期 望該類具有如下職責(zé): ? 向購物籃添加商品; ? 從購物籃刪除商品; ? 顯示購物籃中的商品。 ? 用例與編碼:低層的用例可以輔助編碼,高層的不能。 114 Actor的一些注意事項(xiàng) ? 包括人與系統(tǒng),總是外部的。 101 對抗變化 ? 從一個(gè)逗號分隔的文本文件中獲得影片列表。 //remember to reset these flag void Copy() { int c。 67 ? 消除 DTO 68 部署 POJO程序 69 70 71 面向?qū)ο笤O(shè)計(jì)的基本原則 72 73 liskov替換原則( LSP) 74 子類型必須能夠替換掉其基類型 ? 問題的根源是關(guān)于行為的: – 基類中有的行為在子類中不存在或不適當(dāng)。 63 ? 基于輕量級框架設(shè)計(jì)的好處是,它提供事務(wù)和持久化時(shí)并不要求應(yīng)用程序類實(shí)現(xiàn)任何特殊接口。 – DO(事務(wù)封裝,業(yè)務(wù)邏輯 ) – DAO – (RoR甚至合并為一層) ? 優(yōu)點(diǎn): – 分層簡化 – 符合 OO ? 缺點(diǎn): – service邏輯也強(qiáng)行放入 DO ,引起了 DO不穩(wěn)定。服務(wù)可以說是業(yè)務(wù)的協(xié)調(diào)者 , 業(yè)務(wù)邏輯可以分散到實(shí)體對象中。 ? (8)具有旺盛的精力和學(xué)習(xí)能力,能快速掌握新技術(shù)和新方法。 ? (2)軟件架構(gòu)設(shè)計(jì):包括軟件架構(gòu)的概念、軟件架構(gòu)與設(shè)計(jì)、架構(gòu)風(fēng)格、特定領(lǐng)域的架構(gòu)風(fēng)格、基于架構(gòu)的軟件開發(fā)方法、架構(gòu)評估、軟件產(chǎn)品線和系統(tǒng)演化等。 – 對 IT 建設(shè)生命周期各個(gè)環(huán)節(jié)有深入了解,包
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1