




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、任課教師:張偉芝任課教師:張偉芝第一章第一章 軟件體系結(jié)構(gòu)概述軟件體系結(jié)構(gòu)概述任課教師:張偉芝 授課教師 姓名:張偉芝 郵箱: 電話:80786208QQ: 76036466任課教師:張偉芝 課程內(nèi)容 課程簡介 課程內(nèi)容及學(xué)習(xí)方式 第一個(gè)設(shè)計(jì)模式單例模式 好設(shè)計(jì)的原則任課教師:張偉芝 課程內(nèi)容 課程簡介 課程
2、內(nèi)容及學(xué)習(xí)方式 第一個(gè)設(shè)計(jì)模式單例模式 好設(shè)計(jì)的原則任課教師:張偉芝工程師設(shè)計(jì)師分析師 架構(gòu)師項(xiàng)目經(jīng)理技術(shù)經(jīng)理CXO任課教師:張偉芝 教材及參考書任課教師:張偉芝 考核方式 必修課 36學(xué)時(shí)、2學(xué)分 平時(shí)成績:30% 平時(shí)表現(xiàn):10%(課堂提問、課堂紀(jì)律、課堂出勤) 平時(shí)作業(yè):20%(以45人為一個(gè)小組) 期末成績:70% 考試形式:閉卷、筆試THU SAGroup7任課教師:張偉芝 課程內(nèi)容 課程簡介 課程內(nèi)容及學(xué)習(xí)方
3、式 第一個(gè)設(shè)計(jì)模式單例模式 好設(shè)計(jì)的原則任課教師:張偉芝 我們講什么? 設(shè)計(jì)模式 體系結(jié)構(gòu)模式任課教師:張偉芝 什么是模式? 模式是一條由三部分組成的規(guī)則。 一個(gè)特定環(huán)境、一個(gè)問題、一個(gè)解決方案。任課教師:張偉芝 他們之間的關(guān)系任課教師:張偉芝 學(xué)習(xí)的方式環(huán)境+問題+解決方案任課教師:張偉芝任課教師:張偉芝 全國交通違法數(shù)據(jù)聯(lián)網(wǎng)環(huán)境任
4、課教師:張偉芝 全國交通違法數(shù)據(jù)聯(lián)網(wǎng)問題 平臺(tái)異構(gòu) 語言異構(gòu) 系統(tǒng)架構(gòu)異構(gòu)任課教師:張偉芝 全國交通違法數(shù)據(jù)聯(lián)網(wǎng)解決方案THU SAGroup16面向服務(wù)的體系結(jié)構(gòu)SOA!任課教師:張偉芝 課程內(nèi)容 課程簡介 課程內(nèi)容及學(xué)習(xí)方式 第一個(gè)設(shè)計(jì)模式單例模式 好設(shè)計(jì)的原則任課教師:張偉芝 第一個(gè)設(shè)計(jì)模式單例模式任課教師:張偉芝 第一個(gè)設(shè)計(jì)模式單例模式 單例模式要解決的問題獨(dú)生子女 解
5、決方案Static public partial class Form2 : Form public static Form2 instance; public static Form2 GetInstance() if (instance=null) instance = new Form2(); return instance; 任課教師:張偉芝 第一個(gè)設(shè)計(jì)模式單例模式任課教師:張偉芝 課程內(nèi)容 課程簡介 課程內(nèi)容及學(xué)習(xí)方式 第一個(gè)設(shè)計(jì)模式單例模式 好設(shè)計(jì)的原則任課教師:張偉芝zhangweizhieu
6、 設(shè)計(jì)正在“腐爛”的征兆 過于僵硬Rigidity 過于脆弱Fragility 不可重用性immobility 粘滯性過高viscosity 好的系統(tǒng)設(shè)計(jì)應(yīng)該具備如下三個(gè)性質(zhì) 可擴(kuò)展性(Extensibility) 靈活性(Flexibility) 可插入性(Pluggability)Robert C.MartinPeter Coad任課教師:張偉芝 面向?qū)ο笤O(shè)計(jì)原則設(shè)計(jì)原則名稱設(shè)計(jì)原則名稱設(shè)計(jì)原則簡介設(shè)計(jì)原則簡介重要性重要性單一職責(zé)原則單一職責(zé)原則(Single Responsibility Principle, SRP)類的職責(zé)
7、要單一,不能將太多的職責(zé)放在一個(gè)類中。開閉原則開閉原則(Open-Closed Principle, OCP)軟件實(shí)體對擴(kuò)展是開放的,但對修改是關(guān)閉的,即在不修改一個(gè)軟件實(shí)體的基礎(chǔ)上去擴(kuò)展其功能。里氏代換原則里氏代換原則(Liskov Substitution Principle, LSP)在軟件系統(tǒng)中,一個(gè)可以接受基類對象的地方必然可以接受一個(gè)子類對象。依賴倒轉(zhuǎn)原則依賴倒轉(zhuǎn)原則(Dependency Inversion Principle, DIP)要針對抽象層編程,而不要針對具體類編程。接口隔離原則接口隔離原則(Interface Segregation Principle, ISP)使用
8、多個(gè)專門的接口來取代一個(gè)統(tǒng)一的接口。 合成復(fù)用原則合成復(fù)用原則(Composite Reuse Principle, CRP)在系統(tǒng)中應(yīng)該盡量多使用組合和聚合關(guān)聯(lián)關(guān)系,盡量少使用甚至不使用繼承關(guān)系。迪米特法則迪米特法則(Law of Demeter, LoD)一個(gè)軟件實(shí)體對其他實(shí)體的引用越少越好,或者說如果兩個(gè)類不必彼此直接通信,那么這兩個(gè)類就不應(yīng)當(dāng)發(fā)生直接的相互作用,而是通過引入一個(gè)第三者發(fā)生間接交互。任課教師:張偉芝 單一職責(zé)原則 高內(nèi)聚性原則 避免相同的職責(zé)(也稱為功能)分散到不同的類中實(shí)現(xiàn)。 避免一個(gè)類承擔(dān)過多的職責(zé)。可以減少類之間的耦合任課
9、教師:張偉芝 單一職責(zé)原則示例 類的設(shè)計(jì)主要工作是“發(fā)現(xiàn)職責(zé)”并“分離職責(zé)”數(shù)據(jù)庫連接和數(shù)據(jù)庫訪問操作相互分離任課教師:張偉芝 遵守單一職責(zé)原則的設(shè)計(jì)模式 工廠模式 分離對象的“創(chuàng)建”和對象的“使用”任課教師:張偉芝 遵守單一職責(zé)原則的設(shè)計(jì)模式 模板方法模式 分離 “共性功能實(shí)現(xiàn)”和“個(gè)性擴(kuò)展”任課教師:張偉芝 遵守單一職責(zé)原則的設(shè)計(jì)模式 命令模式 分離“命令的請求者”和“命令的實(shí)現(xiàn)者”任課教師:張偉芝zhangweiz
10、 遵守單一職責(zé)原則的設(shè)計(jì)模式 代理模式 分離 “服務(wù)的請求者”和“服務(wù)的提供者”任課教師:張偉芝 遵守單一職責(zé)原則的體系結(jié)構(gòu)模式 一個(gè)模塊、子系統(tǒng)也應(yīng)該僅有一個(gè)引起它變化的原因任課教師:張偉芝 開閉原則 Open(Open for extension) 模塊的行為必須是開放的、支持?jǐn)U展的,而不是僵化的 Closed(Closed for modification) 在對模塊的功能進(jìn)行擴(kuò)展時(shí),不應(yīng)該影響或大規(guī)模地影響已有的程序模塊 絕大部分的設(shè)計(jì)模式都符合開閉原則 抽象化是開閉原則的
11、關(guān)鍵要求開發(fā)人員可以在不修改系統(tǒng)中現(xiàn)有的功能代碼的前提下,而實(shí)現(xiàn)對應(yīng)用系統(tǒng)的軟件功能進(jìn)行擴(kuò)展任課教師:張偉芝 里氏代換原則 主要是針對繼承的設(shè)計(jì)原則 子類型必須能夠替換掉它們的父類型、并出現(xiàn)在父類能夠出現(xiàn)的任何地方。 子類可以擴(kuò)展父類的功能,但不能改變父類原有的功能。任課教師:張偉芝 里氏替換原則 子類可以實(shí)現(xiàn)父類的抽象方法,但不能覆蓋父類的非抽象方法。 子類中可以增加自己特有的方法。 當(dāng)子類的方法重載父類的方法時(shí),方法的前置條件(即方法的形參)要比父類方法的輸入?yún)?shù)更寬松。 當(dāng)子類的方法實(shí)現(xiàn)父類的抽象方法
12、時(shí),方法的后置條件(即方法的返回值)要比父類更嚴(yán)格。任課教師:張偉芝 依賴倒置原則 將依賴關(guān)系倒置為依賴接口 上層模塊不應(yīng)該依賴于下層模塊,它們共同依賴于一個(gè)抽象 父類不能依賴子類,它們都要依賴抽象類 抽象不能依賴于具體,具體應(yīng)該要依賴于抽象任課教師:張偉芝 接口隔離 一個(gè)類對另外一個(gè)類的依賴性應(yīng)當(dāng)是建立在最小的接口上 客戶端不應(yīng)該依賴那些它不需要的接口(方法)接口的污染!任課教師:張偉芝 如何避免不良好的接口設(shè)計(jì) 用多個(gè)專門的接口,而不使用單一的總接口。 一個(gè)接
13、口就只代表一個(gè)角色 使用接口隔離原則拆分接口時(shí),首先必須滿足單一職責(zé)原則任課教師:張偉芝 合成復(fù)用原則 又稱為組合/聚合復(fù)用原則 盡量使用對象組合,而不是繼承來達(dá)到復(fù)用目的 一個(gè)新的對象里通過關(guān)聯(lián)關(guān)系(包括組合關(guān)系和聚合關(guān)系)來使用一些已有的對象 新對象通過委派調(diào)用已有對象的方法達(dá)到復(fù)用其已有功能的目的簡言之:要盡量使用組合/聚合關(guān)系,少用繼承!?任課教師:張偉芝 合成復(fù)用原則 繼承復(fù)用:實(shí)現(xiàn)簡單,易于擴(kuò)展,沒有足夠的靈活性(“白箱”復(fù)用 )DBUtil+ getConnection ().: Connec
14、tionStudentDAO+findStudentById (String id)findAllStudents ()save (StudentDTO student).: StudentDTO: List: intTeacherDAO+findTeacherById (String id)findAllTeachers ()save (TeacherDTO teacher).: TeacherDTO: List: int任課教師:張偉芝 合成復(fù)用原則 組合/聚合復(fù)用:耦合度相對較低,選擇性地調(diào)用成員對象的操作;可以在運(yùn)行時(shí)動(dòng)態(tài)進(jìn)行。(“黑箱”復(fù)用
15、 )DBUtil+ getConnection ().: ConnectionStudentDAO- dBOperator : DBUtil+setDBOperator (DBUtil dBOperator)findStudentById (String id)findAllStudents ()save (StudentDTO student).: void: StudentDTO: List: intTeacherDAO- dBOperator : DBUtil+setDBOperator (DBUtil dBOperator)findTeacherById (String id)find
16、AllTeachers ()save (TeacherDTO teacher).: void: TeacherDTO: List: intNewDBUtil+ getConnection ().: Connection任課教師:張偉芝 迪米特法則 要求一個(gè)軟件實(shí)體應(yīng)當(dāng)盡可能少的與其他實(shí)體發(fā)生相互作用 又稱為最少知識原則 不要和“陌生人”說話 只與你的直接朋友通信 每一個(gè)軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關(guān)的軟件單位創(chuàng)建松耦合的類任課教師:張偉芝 迪米特法則 某系統(tǒng)界面類(如F
17、orm1、Form2等類)與數(shù)據(jù)訪問類(如DAO1、DAO2等類)之間的調(diào)用關(guān)系較為復(fù)雜,如圖所示:任課教師:張偉芝 迪米特法則 如果其中的一個(gè)類需要調(diào)用另一個(gè)類的某一個(gè)方法的話,可以通過第三者轉(zhuǎn)發(fā)這個(gè)調(diào)用Form1Form2Form3Form4Form5DAO1DAO2DAO3DAO4Controller1Controller2任課教師:張偉芝 好設(shè)計(jì)的原則 單一職責(zé)原則要求在軟件系統(tǒng)中,一個(gè)類只負(fù)責(zé)一個(gè)功能領(lǐng)域中的相應(yīng)職責(zé)。 開閉原則要求一個(gè)軟件實(shí)體應(yīng)當(dāng)對擴(kuò)展開放,對修改關(guān)閉,即在不修改源代碼的基礎(chǔ)上擴(kuò)展一個(gè)系統(tǒng)的行為。 里氏代換原則可以通俗表述為在軟件中如果能夠使用基類對象,那么一定能夠使用其子類對象。任課教師:張偉芝 好設(shè)計(jì)的原則 依賴倒轉(zhuǎn)原則要求抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象;要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出口碗碟采購合同范本
- 業(yè)務(wù)代表合同范本
- Unit 2 SectionA(1a~1e)教學(xué)設(shè)計(jì)- 2024-2025學(xué)年人教版(2024)七年級英語下冊
- 2024年招商銀行唐山分行社會(huì)招聘考試真題
- 出租稻田土地合同范本
- 2024年咸陽市實(shí)驗(yàn)中學(xué)教師招聘筆試真題
- 借款公證合同范本
- 買車退款合同范本
- 住建備案合同范本
- 分包轉(zhuǎn)讓合同范本
- 《馬克思生平故事》課件
- 2024-2025學(xué)年四川省成都市高一上學(xué)期期末教學(xué)質(zhì)量監(jiān)測英語試題(解析版)
- HRBP工作總結(jié)與計(jì)劃
- 八大危險(xiǎn)作業(yè)安全培訓(xùn)考試試題及答案
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年上半年中電科太力通信科技限公司招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年沙洲職業(yè)工學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- DB3502T052-2019 家政服務(wù)規(guī)范 家庭搬家
- 2024甘肅省公務(wù)員(省考)行測真題
- 體育活動(dòng)策劃與組織課件
- 會(huì)計(jì)學(xué)專業(yè)數(shù)智化轉(zhuǎn)型升級實(shí)踐
評論
0/150
提交評論