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