版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
程序設計方法學講課第一頁,共二十六頁,編輯于2023年,星期日一、面向對象與面向過程程序設計OOP以待解問題中涉及的對象為主要矛盾對象(Object)和類(Class)對象,是現(xiàn)實世界中的物理實體在計算機邏輯中的映射和體現(xiàn)。類,是同種對象的集合與抽象。(模板)消息(Message)傳遞一個面向對象的程序由許多對象組成,這些對象之間對象之間通過收發(fā)信息相互溝通。對于對象來說,消息就是請求執(zhí)行某個過程?;靖拍畹诙?,共二十六頁,編輯于2023年,星期日基本概念對象類實體抽象數(shù)據(jù)類概念世界現(xiàn)實世界計算機世界抽象實例化抽象計算機邏輯實現(xiàn)映射一、面向對象與面向過程程序設計第三頁,共二十六頁,編輯于2023年,星期日基本概念對象的組成標識用以區(qū)別不同對象的唯一標志用“對象名”表達狀態(tài)又稱靜態(tài)屬性,指對象內部包含的信息用“數(shù)據(jù)成員(域)”表達行為對象的動態(tài)屬性,指對象可進行的操作使用“函數(shù)成員(方法)”表達一、面向對象與面向過程程序設計第四頁,共二十六頁,編輯于2023年,星期日對象和類對象可以是現(xiàn)實生活中的一個物理對象,還可以是某一類概念實體的實例。例如:一輛汽車、一個人、一本書,乃至一種語言、一個圖形、一種管理方式,都可以作為一個對象。類是一組具有相同數(shù)據(jù)結構和相同操作的對象的集合。類是對一系列具有相同性質的對象的抽象,是對對象共同特征的描述。比如每一輛汽車是一個對象的話,所有的汽車可以作為一個模板,我們就定義汽車這個類。可以使用類的定義實例化對象,這表示創(chuàng)建該類的一個實例。從類定義中產生對象,必須有建立實例的操作。一、面向對象與面向過程程序設計第五頁,共二十六頁,編輯于2023年,星期日面向對象程序設計技術汲取了結構化程序設計中好的思想,并將這些思想與一些新的、強大的理念相結合,從而給你的程序設計工作提供了一種全新的方法。通常,在面向對象的程序設計風格中,你會將一個問題分解為一些相互關聯(lián)的子集,每個子集內部都包含了相關的數(shù)據(jù)和函數(shù)。同時,你會以某種方式將這些子集分為不同等級,而一個對象就是已定義的某個類型的變量。當你定義了一個對象,你就隱含的創(chuàng)建了一個新的數(shù)據(jù)類型。一、面向對象與面向過程程序設計第六頁,共二十六頁,編輯于2023年,星期日對象A數(shù)據(jù)方法對象B數(shù)據(jù)方法對象C數(shù)據(jù)方法對象D數(shù)據(jù)方法消息消息消息消息面向對象程序設計中的數(shù)據(jù)和函數(shù)的組織結構:一、面向對象與面向過程程序設計第七頁,共二十六頁,編輯于2023年,星期日面向對象程序設計的特點抽象性抽象(abstraction):去掉研究問題中次要的部分,僅僅抽取主要的、本質的部分進行研究的方法。過程抽象:面向過程方法使用數(shù)據(jù)抽象:面向對象方法使用抽象數(shù)據(jù)類型(ADT)一、面向對象與面向過程程序設計第八頁,共二十六頁,編輯于2023年,星期日面向對象程序設計的特點封裝性封裝(encapsulation):利用ADT將數(shù)據(jù)和基于數(shù)據(jù)的操作密封在一起,系統(tǒng)的其它對象只能通過界面與其交互。封裝機制將數(shù)據(jù)和代碼捆綁到一起,避免了外界的干擾和不確定性。封裝的優(yōu)點提高了系統(tǒng)靈活性提高了系統(tǒng)安全性實例:銀行賬戶一、面向對象與面向過程程序設計第九頁,共二十六頁,編輯于2023年,星期日面向對象程序設計的特點繼承性(具體化)繼承(Inheritance)是可以讓某個類型的對象獲得另一個類型的對象的屬性的方法。允許程序設計人員在設計新類時,只考慮與已有的父類所不同的部分,從而繼承父類的內容為自己的組成部分可在子類中重寫方法的實現(xiàn),改變父類中不適合子類的行為提高了代碼復用率,能使開發(fā)者的大部分精力用于系統(tǒng)特殊的設計,便于軟件的演進和增量式擴充。C#只支持單繼承,但支持多重接口的繼承實現(xiàn)繼承支持按級分類的概念。繼承很好的支持代碼的重用性(reusability)。一、面向對象與面向過程程序設計第十頁,共二十六頁,編輯于2023年,星期日面向對象程序設計的特點多態(tài)性多態(tài)(Polymorphism):多態(tài)的意思是事物具有不同形式的能力。例如,對不同的實例,某個操作可能會有不同的行為。這個行為依賴于所要操作數(shù)據(jù)的類型。多態(tài)機制使具有不同內部結構的對象可以共享相同的外部接口。多態(tài)的實現(xiàn)重載(overload)覆蓋(override)實例:cd/dvd播放一、面向對象與面向過程程序設計第十一頁,共二十六頁,編輯于2023年,星期日OPO總結任何事物都是一個對象通過相互聯(lián)系的對象請求其他對象執(zhí)行一定的行為來完成計算。對象之間通過發(fā)送和接收消息來進行通信。每個對象都有自己的存儲空間,用來存儲其它對象每個對象都是一個類的實例。類用來代表一組相似的對象及其相關的行為,即同一個類的多個對象能執(zhí)行相同行為類可以組織成一個單根樹狀組織,成為繼承層次,每個類事例的存儲空間和行為自動被其派生類使用一、面向對象與面向過程程序設計第十二頁,共二十六頁,編輯于2023年,星期日面向過程的結構化程序設計方法就是采用面向過程的方法來設計結構化程序,結構化程序通常包含一個主過程和若干個子過程,其中每個子過程都描述了某一個小問題的解決方法再由主過程自頂向下調用各子過程,來逐步解決整個問題。面向過程開發(fā)方式是對計算機底層結構的一層抽象,它明顯把程序的內容分為數(shù)據(jù)和操縱數(shù)據(jù)的操作兩部分。一、面向對象與面向過程程序設計第十三頁,共二十六頁,編輯于2023年,星期日主程序函數(shù)1函數(shù)2函數(shù)3函數(shù)4函數(shù)5函數(shù)6函數(shù)7函數(shù)7自頂向下的設計方法:一、面向對象與面向過程程序設計第十四頁,共二十六頁,編輯于2023年,星期日全局數(shù)據(jù)全局數(shù)據(jù)函數(shù)1局部數(shù)據(jù)函數(shù)2局部數(shù)據(jù)函數(shù)3局部數(shù)據(jù)面向過程程序中函數(shù)和數(shù)據(jù)的關系:程序=數(shù)據(jù)結構+算法一、面向對象與面向過程程序設計第十五頁,共二十六頁,編輯于2023年,星期日面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調用就可以了。面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。面向對象的程序設計方法所得到的程序是類的集合,而面向過程的程序設計方法所得到的程序是函數(shù)的集合。一、面向對象與面向過程程序設計第十六頁,共二十六頁,編輯于2023年,星期日一、面向對象與面向過程程序設計1.面向對象的程序容易閱讀和理解,程序員只需了解必要的細節(jié),降低了程序的復雜性,
使其具有較好的可維護性2.程序員通過修改、添加或刪除對象,可以很容易的修改、添加或刪除程序的屬性,使程序具有易修改的特性3.程序員可以將某些公用的類和對象保存起來,隨時插入到應用程序中,不需做什么修改就能使用,具有很好的可重用性面向對象程序設計的優(yōu)點第十七頁,共二十六頁,編輯于2023年,星期日二、面向對象設計模式使用面向對象的程序設計語言在開發(fā)中最痛苦的是什么?1,選擇太多,無從下手:public\protected\private繼承\(zhòng)組合\聚實現(xiàn)繼承\(zhòng)接口繼承成員變量\局部變量簡單設計\復雜設計2,沒有正確答案:不知道我們是否真正的實現(xiàn)了面向對象的要求,看別人寫的東西都是垃圾,自己寫的東西慢慢也成為了垃圾,最后就是痛苦——一個難題沒有正確答案往往都很痛苦。問題總結為:怎樣才能實現(xiàn)好的設計,什么才是好的設計——高可復用性,高靈活性,高擴展性——高內聚,低耦合第十八頁,共二十六頁,編輯于2023年,星期日二、面向對象設計模式模式的誕生與定義Alexander給出了關于模式的經典定義:每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心,通過這種方式,我們可以無數(shù)次地重用那些已有的解決方案,無需再重復相同的工作。Apatternisasolutiontoaprobleminacontext模式是在特定環(huán)境中解決問題的一種方案第十九頁,共二十六頁,編輯于2023年,星期日二、面向對象設計模式設計模式定義:設計模式是一套被反復使用、多數(shù)人知曉的、經過分類編目的、代碼設計經驗的總結。四個基本要素:模式名稱、問題、解決方案、效果描述方式:模式名和分類、意圖、別名、動機、適用性、結構、參與者、協(xié)作、效果、實現(xiàn)、代碼示例、已知應用、相關模式編目:23個設計模式,3個類別(創(chuàng)建型、結構型、行為型)第二十頁,共二十六頁,編輯于2023年,星期日二、面向對象設計模式設計模式的分類根據(jù)其目的(模式是用來做什么的)可分為創(chuàng)建型(Creational),結構型(Structural)和行為型(Behavioral)三種:創(chuàng)建型模式主要用于創(chuàng)建對象。結構型模式主要用于處理類或對象的組合。行為型模式主要用于描述對類或對象怎樣交互和怎樣分配職責。第二十一頁,共二十六頁,編輯于2023年,星期日二、面向對象設計模式設計模式的分類根據(jù)范圍,即模式主要是用于處理類之間關系還是處理對象之間的關系,可分為類模式和對象模式兩種:類模式處理類和子類之間的關系,這些關系通過繼承建立,在編譯時刻就被確定下來,是屬于靜態(tài)的。對象模式處理對象間的關系,這些關系在運行時刻變化,更具動態(tài)性。第二十二頁,共二十六頁,編輯于2023年,星期日二、面向對象設計模式GoF設計模式簡介范圍\目的創(chuàng)建型模式結構型模式行為型模式類模式工廠方法模式(類)適配器模式解釋器模式模板方法模式對象模式抽象工廠模式建造者模式原型模式單例模式(對象)適配器模式橋接模式組合模式裝飾模式外觀模式享元模式代理模式職責鏈模式命令模式迭代器模式中介者模式備忘錄模式觀察者模式狀態(tài)模式策略模式訪問者模式第二十三頁,共二十六頁,編輯于2023年,星期日二、面向對象設計模式設計模式的優(yōu)點
設計模式是從許多優(yōu)秀的軟件系統(tǒng)中總結出的成功的、能夠實現(xiàn)可維護性復用的設計方案,使用這些方案將避免我們做一些重復性的工作,而且可以設計出高質量的軟件系統(tǒng)。設計模式的主要優(yōu)點如下:設計模式融合了眾多專家的經驗,并以一種標準的形式供廣大開發(fā)人員所用,它提供了一套通用的設計詞匯和一種通用的語言以方便開發(fā)人員之間溝通和交流,使得設計方案更加通俗易懂。對于使用不同編程語言的開發(fā)和設計人員可以通過設計模式來交流系統(tǒng)設計方案,每一個模式都對應一個標準的解決方案,設計模式可以降低開發(fā)人員理解系統(tǒng)的復雜度。第二十四頁,共二十六頁,編輯于2023年,星期日二、面向對象設計模式設計模式使人們可以更加簡單方便地復用成功的設計和體系結構,將已證實的技術表述成設計模式也會使新系統(tǒng)開發(fā)者更加容易理解其設計思路。設計模式使得重用成功的設計更加容易,并避免那些導致不可重用的設計方案。設計模式使得設計方案更加靈活,且易于修改。設計模式的使用將提高軟件系統(tǒng)的開發(fā)效率和軟件質量,且在一定程度上節(jié)約設計成本。設計模式有助于初學者更深入地理解面向對象思想,一方面可以幫助初學者更加方便地閱讀和學習現(xiàn)有類庫與其他系統(tǒng)中的源代碼,另一方面還可以提高軟件的設計水平和代碼質量。設計模式的優(yōu)點第二十五頁,共二十六頁,編輯于2023年,星期日二、面向對象設計模式面向對象的設計原則尋找合適的對象:什么時候設計類,候選詞分析法,多個設計模式創(chuàng)造了一些類。決定對象的粒度:多個設計模式可以優(yōu)化對象的粒度。指定對象接口:候選詞分析法,多個設計模式也有指導。描述對象的實現(xiàn)區(qū)分類繼承與接口繼承:簡單理解C++純虛函數(shù)類(抽象類)針對接口編程而不是針
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上外版選擇性必修3生物上冊月考試卷含答案
- 2025年新科版九年級歷史下冊月考試卷
- 2025年浙教版選修4地理下冊月考試卷
- 2025年教科新版選修2地理下冊階段測試試卷
- 二零二五年度廣告宣傳攝影合同范本4篇
- 二零二五年度農資質量安全追溯體系建設合同3篇
- 二零二五年度牛場環(huán)保設施建設與運營合同范本4篇
- 2025年度文物拍賣合同標準版4篇
- 二零二五年度2025版木材加工廢棄物回收利用合同4篇
- 護工合同范本(2篇)
- 2024年湖南高速鐵路職業(yè)技術學院單招職業(yè)技能測試題庫及答案解析
- (正式版)SJT 11449-2024 集中空調電子計費信息系統(tǒng)工程技術規(guī)范
- 廣州綠色金融發(fā)展現(xiàn)狀及對策的研究
- 《近現(xiàn)代史》義和團運動
- 人教版四年級上冊加減乘除四則混合運算300題及答案
- 合成生物學技術在生物制藥中的應用
- 消化系統(tǒng)疾病的負性情緒與心理護理
- 高考語文文學類閱讀分類訓練:戲劇類(含答案)
- 協(xié)會監(jiān)事會工作報告大全(12篇)
- WS-T 813-2023 手術部位標識標準
- 同意更改小孩名字協(xié)議書
評論
0/150
提交評論