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

正文內(nèi)容

高級軟件架構(gòu)設(shè)計(jì)(更新版)

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

下一頁面
  

【正文】 的,因?yàn)樗械穆氊?zé)都朝著相同的目標(biāo) ─維護(hù)客戶已經(jīng)選擇的商品集合。通常,這是特定的業(yè)務(wù)領(lǐng)域,如在線銷售或者客戶關(guān)系管理。 116 倉庫信息系統(tǒng)的用例圖 117 借鑒 RUP的 UML建模與分析 118 全局分析 ? 全局分析側(cè)重于定義擬建系統(tǒng)所采用的構(gòu)架以及影響構(gòu)架的要素。 ? 不是需求規(guī)格說明,但反映了主要的功能性需求。 ? Actor是“角色”,不是特定的人或特定的事。當(dāng)僅僅使用關(guān)聯(lián)名不足夠表達(dá)清楚后,可以用關(guān)聯(lián)角色名來加強(qiáng)表達(dá)。 public MovieLister() { finder = new ColonDelimitedMovieFinder()。 } } 100 ? 其中真正想要考察的是如何將 MovieLister對象與特定的 finder對象連接起來。 } 93 依賴倒置原則( DIP) 康凱 94 相關(guān)概念 ? 關(guān)于解耦 – 依賴倒置( DIP) – 控制反轉(zhuǎn)( IoC) – 依賴注入( DI) – 服務(wù)定位器( SL) – 有些是手段,有些是原則,不過其間的差異并不太重要,更重要的是其共同點(diǎn):其根本目標(biāo)都是解除依賴,將組件的配置與使用分離開。 – 現(xiàn)實(shí)中的約束--不能改變接口 ? Copy程序的第一次修改結(jié)果 bool ptFlag = false。 – 違反了 LSP原則的本質(zhì)是派生類的行為與基類中的不一致。 66 ? 不適合用面向?qū)ο蟮膱龊希? ? 大量數(shù)據(jù)集合的關(guān)系操作。 64 65 ? 面向?qū)ο蟮膬?yōu)點(diǎn): ? 整個(gè)設(shè)計(jì)更易理解和維護(hù)。 ? 它使用構(gòu)建在 JDBC上的持久層框架來訪問數(shù)據(jù)庫 , 并不直接使用 JDBC。 57 ? 原則: – 業(yè)務(wù)對象封裝了內(nèi)在的業(yè)務(wù)邏輯,而應(yīng)用服務(wù)封裝了外在于業(yè)務(wù)對象的業(yè)務(wù)邏輯。 55 ? 缺點(diǎn): ? DAO和 DO雙向依賴。 ? 缺點(diǎn):行為與數(shù)據(jù)分離,很多情況導(dǎo)致維護(hù)與理解困難。服務(wù)包含那些無法指派的單個(gè)實(shí)體的行為 , 由作用于多個(gè)對象方法組成。往往在設(shè)計(jì)時(shí),實(shí)體的形為最難決斷。 ? (2)具有 5個(gè)以上大中型開發(fā)項(xiàng)目的總體規(guī)劃、方案設(shè)計(jì)經(jīng)驗(yàn),有大中型應(yīng)用系統(tǒng)開發(fā)和實(shí)施的成功案例。 ? (4)系統(tǒng)設(shè)計(jì):包括處理流程設(shè)計(jì)、人機(jī)界面設(shè)計(jì)、文件與存儲設(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ì)與性能評估等。 ? (4)系統(tǒng)開發(fā):包括程序設(shè)計(jì)語言、軟件開發(fā)方法、需求分析和設(shè)計(jì)方法、測試評審方法、開發(fā)管理、應(yīng)用系統(tǒng)構(gòu)建、系統(tǒng)審計(jì)、外部資源使用和基于中間件的開發(fā)等方面的知識。 – 了解多種應(yīng)用系統(tǒng)的結(jié)構(gòu)。 ? 具備系統(tǒng)設(shè)計(jì)員的所有技能,但涉及面更廣、抽象級別更高。 ? 二、很強(qiáng)的自學(xué)能力、分析能力、解決問題的能力。 ? 系統(tǒng)架構(gòu)師能力要求: ? 一、系統(tǒng)架構(gòu)相關(guān)的知識和經(jīng)驗(yàn)。 9 ? 以目標(biāo)導(dǎo)向和主動的方式來不帶任何感情色彩地關(guān)注項(xiàng)目結(jié)果,構(gòu)架師應(yīng)當(dāng)是項(xiàng)目背后的技術(shù)推動力,而非構(gòu)想者或夢想家(追求完美) ? 精通構(gòu)架設(shè)計(jì)的理論、實(shí)踐和工具,并掌握多種參考構(gòu)架、主要的可重用構(gòu)架機(jī)制和模式。 – 深入掌握 12種主流技術(shù)平臺上開發(fā)系統(tǒng)的方法。 ? (3)典型系統(tǒng)應(yīng)用:包括網(wǎng)絡(luò)應(yīng)用、數(shù)據(jù)庫應(yīng)用和多媒體系統(tǒng)等方面的知識。 ? (3)設(shè)計(jì)模式:包括設(shè)計(jì)模式的概念、組成、分類和實(shí)現(xiàn)、模式和軟件架構(gòu)的關(guān)系等。 22 軟件架構(gòu)師的任職條件 ? 根據(jù)軟件架構(gòu)師的職責(zé)和角色定位,以及知識體系,從實(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)。 24 第二單元:技術(shù)架構(gòu)視圖 ─面向?qū)ο蟪绦蛟O(shè)計(jì)原則與模式 25 26 27 用 GRASP模式指導(dǎo)設(shè)計(jì) 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 領(lǐng)域模型 48 ? 層次結(jié)構(gòu) ? 領(lǐng)域模型 ? 從 EJB到輕量級框架 49 層次結(jié)構(gòu) ? 表現(xiàn)層( present) ? 業(yè)務(wù)層 ? 業(yè)務(wù)層外觀 ? 業(yè)務(wù)層核心 ? 領(lǐng)域?qū)ο蠊芾?/服務(wù) /倉庫層 ? 領(lǐng)域?qū)ο髮? ? 持久層 ? 數(shù)據(jù)訪問層 ? 數(shù)據(jù)庫 50 ? 領(lǐng)域模型中的各種角色: – 實(shí)體 有唯一的標(biāo)識 ,并且要有屬性和行為 (非 GET/SET),添加了行為,使其具有生命力。 – 倉庫 (repository)管理實(shí)體的集合 ,主要有查找和刪除實(shí)體的方法 .實(shí)現(xiàn)類可以調(diào)用執(zhí)久化層 (如 Hibernate, Ibatis) – 服務(wù) (Service) , 實(shí)現(xiàn)整個(gè)應(yīng)用程序的工作流 (workflow)。 51 領(lǐng)域模型 ? 失血模型 ? 貧血模型 ? 充血模型 ? 脹血模型 52 失血模型 ? DO只有屬性及其 getter/setter方法,沒有任何業(yè)務(wù)邏輯。 ? Service(事務(wù)封裝 ) ? DO ? DAO ? 優(yōu)點(diǎn): ? 符合 OO ? Service層很薄,只充當(dāng) Facade的角色,不和 DAO打交道。 – DO暴露給 web層過多的信息,可能引起不必要的耦合。 ? ┏━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━┓ ? ┃ ┃ 典型的 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的過程式。甚至當(dāng)應(yīng)用程序的類需要運(yùn)行在事務(wù)里或是持久的時(shí)候,它們?nèi)允?POJO,設(shè)計(jì)者可以繼續(xù)享受 POJO的種種好處。 EJB風(fēng)格的過程式設(shè)計(jì)往往需耍修改核心代碼。 – IS A的本質(zhì)是指行為的一致,而不是生活中的語言。 } 91 需求在變化 ? 用戶希望 Copy程序能從紙帶讀入機(jī)中讀入信息。 while ((c = (ptFlag ? Rdpt() : Rdkbd())) != EOF) punchFlag ? WrtPunch(c) : WrtPtr(c)。 } return (Movie[]) (new Movie[()])。 ? class MovieLister... private MovieFinder finder。 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)終端的旁邊。 ? 定義了邊界。 ? 不是事件流。 ? 擴(kuò)展用例:基礎(chǔ)用例不必知道擴(kuò)展用例的細(xì)節(jié),只提供擴(kuò)展點(diǎn)。 問題域是首先產(chǎn)生軟件系統(tǒng)(以及從此而來的軟件開發(fā)活動)需求的域。 這是內(nèi)聚的職責(zé)集合,一切都是為了維護(hù)客戶選擇的商品集合。我們以給定類與其他類具有關(guān)系的數(shù)目來度量類間的耦合度。類可以把它們的一些職責(zé)托付給專注于特定功能的其他“輔助”類。如果是,每個(gè)這些 內(nèi)聚職責(zé)集合可能獨(dú)立成類。 ? 建立通用的術(shù)語以改善團(tuán)隊(duì)內(nèi)部的溝通。 ? 該日志要求被記錄到指定的文本文件中,記錄的內(nèi)容屬于字符串類型,其值由客戶提供。 – SqlCommand mand = new SqlCommand(connection)。 。 分離是指 “ 讓各部分的行為各自獨(dú)立 , 或至少顯式指出關(guān)聯(lián) ” 。 ? 用 Shape類來封裝擁有的形狀的概念 。但工具箱不能顯式的在按鈕或菜單中實(shí)現(xiàn)該請求,因?yàn)橹挥惺褂霉ぞ呦涞膽?yīng)用知道該由哪個(gè)對象做哪個(gè)操作。 163 問題 ? 假設(shè)需要向該層次結(jié)構(gòu)中增加一個(gè)新方法 confrgureForUnix。如果想增加新報(bào)表 ,只需增加新的訪問者 ,而不需要更改數(shù)據(jù)結(jié)構(gòu)中的代碼。有些用戶希望聽到撥號聲 ,有些用戶則希望他們的調(diào)制解調(diào)器保持安靜 。 ? 一個(gè)系統(tǒng)通常是由元件組成的,而這些元件如何形成、相互之間如何發(fā)生作用,則是關(guān)于這個(gè)系統(tǒng)本身結(jié)構(gòu)的重要信息。 ? 可伸縮性( Scalable) : – 軟件必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下,保持合理的性能。 179 架構(gòu)的種類 ? 根據(jù)我們關(guān)注的角度不同,可以將架構(gòu)分成三種: – 邏輯架構(gòu) – 物理架構(gòu) – 系統(tǒng)架構(gòu) 180 邏輯架構(gòu) ? 軟件系統(tǒng)中元件之間的關(guān)系,比如用戶界面,數(shù)據(jù)庫,外部系統(tǒng)接口,商業(yè)邏輯元件等等。這些決定中會有很多是一旦作出,就很難更改的。軟件開發(fā)者在其上構(gòu)建自己的軟件架構(gòu),開發(fā)自己的運(yùn)用程序。 ? .NET 框架對 Web 站點(diǎn)的支持: ? 在編寫 Windows 軟件(使用 ATL/COM、 MFC、 VB或標(biāo)準(zhǔn) Win32)方面,與當(dāng)前創(chuàng)建應(yīng)用程序的方式相比 .NET都具有的優(yōu)勢。 ? 代碼模式是特定的范例和與特定語言有關(guān)的編程技巧。它們是數(shù)據(jù)層( data layer)、商務(wù)層( business layer)和表示層( presentation layer)。 ? 這種分層設(shè)計(jì)方式很有用,因?yàn)槊恳粚佣伎梢元?dú)立地修改。 200 ? 問題: ? 一個(gè)必須處理或轉(zhuǎn)換輸入數(shù)據(jù)流的系統(tǒng)。 201 解決方案與結(jié)構(gòu) ? 管道和過濾器體系架構(gòu)模式把系統(tǒng)任務(wù)分成為幾個(gè)獨(dú)立的處理步驟。 202 優(yōu)點(diǎn)與缺點(diǎn) ? 優(yōu)點(diǎn): ? 結(jié)構(gòu)簡單:系統(tǒng)的行為是所有過濾器行為的簡單復(fù)合。 203 黑板 (Blackboard) ? 又稱看板模式:在這種架構(gòu)中,有兩種不同的構(gòu)件:一種是表示當(dāng)前狀態(tài)中心數(shù)據(jù)結(jié)構(gòu);另一種是一種相互獨(dú)立的構(gòu)件,這些構(gòu)件對中心數(shù)據(jù)進(jìn)行操作。 206 客戶 /服務(wù)器( Client/Server) ? 系統(tǒng)分為客戶和服務(wù)器,服務(wù)器一直處于偵聽的狀態(tài),客戶主動連接服務(wù)器,每個(gè)服務(wù)器可以為多個(gè)客戶服務(wù)。 ? MVC模式最吸引人之處在于它迫使用戶必須抽象自己的代碼,把項(xiàng)目分為表示、邏輯和控制三部分 ,每部分間的關(guān)聯(lián)較小。 ? 控制器 : ? 控制器負(fù)責(zé)交互和將用戶輸入的數(shù)據(jù)導(dǎo)入模型 ,它還利用用戶的輸入將應(yīng)用轉(zhuǎn)向其他視圖。 2
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1