位置:首頁(yè) > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# 面向?qū)ο缶幊痰暮x

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-04

    面向?qū)ο缶幊探鉀Q了傳統(tǒng)編程技巧的許多問題。過程化編程(Procedural Programming)常會(huì)導(dǎo)致所謂的單一應(yīng)用程序,即所有功能都包含在幾個(gè)代碼模塊(常常是一個(gè)代碼模塊)中。而使用OOP技術(shù),通常要使用許多代碼模塊,每個(gè)模塊都提供特定功能。而且,每個(gè)模塊都是孤立的,甚至與其他模塊完全獨(dú)立。這種模塊化編程方法提供了非常豐富的多樣性,大大增加了重用代碼的機(jī)會(huì)。

    為進(jìn)一步說(shuō)明這個(gè)問題,把計(jì)算機(jī)上的一個(gè)高性能應(yīng)用程序想象成一輛一流賽車。如果使用傳統(tǒng)的編程技巧,這輛賽車就是一個(gè)單元。如果要改進(jìn)這輛車,就必須替換整車,把它送回廠商那里,讓汽車專家升級(jí)它,或者購(gòu)買一輛新車。如果使用OOP技術(shù),就只需要從廠商處購(gòu)買新引擎,自己按照其說(shuō)明替換它,而不必用鋼鋸切割車體。


    在傳統(tǒng)應(yīng)用程序中,執(zhí)行流常是簡(jiǎn)單的、線性的。把應(yīng)用程序加載到內(nèi)存中,從A點(diǎn)開始執(zhí)行,在B點(diǎn)結(jié)束,然后從內(nèi)存中卸載,在這個(gè)過程中可能用到其他各種實(shí)體,例如在存儲(chǔ)介質(zhì)上的文件或顯卡的功能,但處理的主體總是位于一個(gè)地方。用到的代碼一般與使用各種數(shù)學(xué)和邏輯方式處理數(shù)據(jù)相關(guān)。處理方法通常比較簡(jiǎn)單,使用基本的數(shù)據(jù)類型(例如整型和布爾值)建立比較復(fù)雜的數(shù)據(jù)表達(dá)方式。

    而使用00P,事情就不是這么直接了。盡管可以獲得相同的效果,但其實(shí)現(xiàn)方式是完全不同的。OOP技術(shù)以結(jié)構(gòu)、數(shù)據(jù)的含義以及數(shù)據(jù)和數(shù)據(jù)之間的交互操作為基礎(chǔ)。這通常意味著要把更多精力放在項(xiàng)目的設(shè)計(jì)階段,其好處是項(xiàng)目的可擴(kuò)展性比較高。一旦對(duì)某種類型的數(shù)據(jù)的表達(dá)方式達(dá)成一致,這種表達(dá)方式就會(huì)應(yīng)用到應(yīng)用程序以后的版本中,甚至是全新的應(yīng)用程序中。這種一致的表達(dá)方式可以極大地縮短開發(fā)時(shí)間。這就是上述賽車示例的工作原理-這里的一致是指“引擎”的代碼是結(jié)構(gòu)化的,這樣就可以很容易地替換成新代碼(即新引擎), 而不需要找廠商幫忙。這也表示,引擎創(chuàng)建出來(lái)后可用于其他目的,可以把它安裝到另一輛車上,或者用它驅(qū)動(dòng)潛艇。


    除了數(shù)據(jù)表達(dá)方式的一致性外,OOP編程還??梢院?jiǎn)化任務(wù),因?yàn)檩^抽象實(shí)體的結(jié)構(gòu)和用法也是一致的。例如,不僅把輸出結(jié)果發(fā)送給設(shè)備(如打印機(jī))所使用的數(shù)據(jù)格式是一致的,而且與該設(shè)備交換數(shù)據(jù)的方法也是一致的,這包括它理解的指令等?;氐劫愜囀纠?,要達(dá)成的一致做法包括引擎如何連接到油箱,如何把驅(qū)動(dòng)力傳送給車輪等。

    顧名思義,OOP技術(shù)要使用對(duì)象。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部