把軟件系統(tǒng)看成是各種對象的集合,這更接近人的思維。軟件需求的變動往往是功能的變動,而功能的執(zhí)行者。更加符合人類的思維,易于編程。
面向對象方法(Object-Oriented Method)是一種把面向對象的思想應用于軟件開發(fā)過程中,指導開發(fā)活動的系統(tǒng)方法,簡稱OO (Object-Oriented)方法,是建立在“對象”概念基礎上的方法學。對象是由數據和容許的操作組成的封裝體,與客觀實體有直接對應關系,一個對象類定義了具有相似性質的一組對象。而每繼承性是對具有層次關系的類的屬性和操作進行共享的一種方式。所謂面向對象就是基于對象概念,以對象為中心,以類和繼承為構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統(tǒng)。
使用面向對象思想進行開發(fā)有以下優(yōu)點:
1、易維護
采用面向對象思想設計的結構,可讀性高,由于繼承的存在,即使改變需求,那么維護也只是在局部模塊,所以維護起來是非常方便和較低成本的。
2、質量高
在設計時,可重用現有的,在以前的項目的領域中已被測試過的類使系統(tǒng)滿足業(yè)務需求并具有較高的質量。
3、效率高
在軟件開發(fā)時,根據設計的需要對現實世界的事物進行抽象,產生類。使用這樣的方法解決問題,接近于日常生活和自然的思考方式,勢必提高軟件開發(fā)的效率和質量。
4、易擴展
由于繼承、封裝、多態(tài)的特性,自然設計出高內聚、低耦合的系統(tǒng)結構,使得系統(tǒng)更靈活、更容易擴展,而且成本較低。
缺點:
1.性能損失.面向對象編程達到了軟件工程的三個主要目標:重用性、靈活性和擴展性,相對的為了實現相應的目標, 就會有一定的性能損失,如果程序進行超大規(guī)模計算,則性能損失就比較明顯;
2.對數學運算等對象化很弱的編程不適用;
優(yōu)點:
1、易維護
采用面向對象思想設計的結構,可讀性高,由于繼承的存在,即使改變需求,那么維護也只是在局部模塊,所以維護起來是非常方便和較低成本的。
2、質量高
在設計時,可重用現有的,在以前的項目的領域中已被測試過的類使系統(tǒng)滿足業(yè)務需求并具有較高的質量。
3、效率高
在軟件開發(fā)時,根據設計的需要對現實世界的事物進行抽象,產生類。使用這樣的方法解決問題,接近于日常生活和自然的思考方式,勢必提高軟件開發(fā)的效率和質量。
4、易擴展
由于繼承、封裝、多態(tài)的特性,自然設計出高內聚、低耦合的系統(tǒng)結構,使得系統(tǒng)更靈活、更容易擴展,而且成本較低。
缺點:
1、沒有準確的定義:很難提供一個準確的定義來說明面向對象DBMS應建成什么樣,這是因為該名稱已經應用到很多不同的產品和原型中,而這些產品和原型考慮的方面可能不一樣。
2、維護困難:隨著組織信息需求的改變,對象的定義也要求改變并且需移植現有數據庫,以完成新對象的定義。當改變對象的定義和移植數據庫時,它可能面臨真正的挑戰(zhàn)。
3、不適合所有的應用:面向對象數據模型用于需要管理數據對象之間存在的復雜關系的應用,它們特別適合于特定的應用,例如工程、電子商務、醫(yī)療等,但并不適合所有應用。當用于普通應用時,其性能會降低并要求很高的處理能力。
談到面向對象,這方面的文章非常多。
但是,明確地給出對象的定義或說明對象的定義的非常少——至少我現在還沒有發(fā)現。其初,“面向對象”是專指在程序設計中采用封裝、繼承、抽象等設計方法。
可是,這個定義顯然不能再適合現在情況。面向對象的思想已經涉及到軟件開發(fā)的各個方面。
如,面向對象的分析(OOA,Object Oriented Analysis),面向對象的設計(OOD,Object Oriented Design)、以及我們經常說的面向對象的編程實現(OOP,Object Oriented Programming)。許多有關面向對象的文章都只是講述在面向對象的開發(fā)中所需要注意的問題或所采用的比較好的設計方法。
看這些文章只有真正懂得什么是對象,什么是面向對象,才能最大程度地對自己有所裨益。這一點,恐怕對初學者甚至是從事相關工作多年的人員也會對它們的概念模糊不清。
面向對象是當前計算機界關心的重點,它是90年代軟件開發(fā)方法。
說幾個主要的: 優(yōu): (1)是一種全新的系統(tǒng)分析設計方法(對象、類、結構屬性、方法) (2)適用于各類信息系統(tǒng)的開發(fā)。
(3)實現了對客觀世界描述到軟件結構的直接轉換 ,大大減少后續(xù)軟件開發(fā)量。 (4)開發(fā)工作的重用性、繼承性高,降低重復工作量。
(5)縮短了開發(fā)周期。 (這幾點是網上復制的) 缺點也很明顯。
類和繼承等特點使得程序會多很多指針操作來定位函數入口和自身要維護虛擬方法表等額外的工作,程序的處理效率相對要低(但程序開發(fā)效率高)。所以現在單純的C語言還是大為用武之地的。
但隨著科技的進步,CPU和內存的性能也突發(fā)猛進。由原來的1核到8核,內存16M和現在的16G,所以程序的效率多多少少會隨著硬件的性能變得更好。
你可以發(fā)現很多大的項目也開始由C轉而變成讓c++和JAVA等面向對象來寫了。
優(yōu)點:
(1)面向用戶的觀點;
(2)自頂向下的分析設計與自底向上的系統(tǒng)實施;
(3)嚴格劃分工作階段明確各階段的界限及任務;
(4)工作成果規(guī)范化、文獻化;
(5)及早地發(fā)現系統(tǒng)開發(fā)過程中的錯誤提高系統(tǒng)的成功率。
缺點:
(1)開發(fā)周期較長難以適應環(huán)境的變化。
(2)開發(fā)過程嚴格無法適應需求的變化。
(3)難以應付非結構化的問題。
(4)用戶很難盡早建立系統(tǒng)預期的概念結構。
聲明:本網站尊重并保護知識產權,根據《信息網絡傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個月內通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:3.740秒