C# 面向?qū)ο缶幊痰暮x
面向?qū)ο缶幊探鉀Q了傳統(tǒng)編程技巧的許多問題。過程化編程(Procedural Programming)常會導(dǎo)致所謂的單一應(yīng)用程序,即所有功能都包含在幾個代碼模塊(常常是一個代碼模塊)中。而使用OOP技術(shù),通常要使用許多代碼模塊,每個模塊都提供特定功能。而且,每個模塊都是孤立的,甚至與其他模塊完全獨立。這種模塊化編程方法提供了非常豐富的多樣性,大大增加了重用代碼的機會。
為進一步說明這個問題,把計算機上的一個高性能應(yīng)用程序想象成一輛一流賽車。如果使用傳統(tǒng)的編程技巧,這輛賽車就是一個單元。如果要改進這輛車,就必須替換整車,把它送回廠商那里,讓汽車專家升級它,或者購買一輛新車。如果使用OOP技術(shù),就只需要從廠商處購買新引擎,自己按照其說明替換它,而不必用鋼鋸切割車體。
在傳統(tǒng)應(yīng)用程序中,執(zhí)行流常是簡單的、線性的。把應(yīng)用程序加載到內(nèi)存中,從A點開始執(zhí)行,在B點結(jié)束,然后從內(nèi)存中卸載,在這個過程中可能用到其他各種實體,例如在存儲介質(zhì)上的文件或顯卡的功能,但處理的主體總是位于一個地方。用到的代碼一般與使用各種數(shù)學(xué)和邏輯方式處理數(shù)據(jù)相關(guān)。處理方法通常比較簡單,使用基本的數(shù)據(jù)類型(例如整型和布爾值)建立比較復(fù)雜的數(shù)據(jù)表達方式。
而使用00P,事情就不是這么直接了。盡管可以獲得相同的效果,但其實現(xiàn)方式是完全不同的。OOP技術(shù)以結(jié)構(gòu)、數(shù)據(jù)的含義以及數(shù)據(jù)和數(shù)據(jù)之間的交互操作為基礎(chǔ)。這通常意味著要把更多精力放在項目的設(shè)計階段,其好處是項目的可擴展性比較高。一旦對某種類型的數(shù)據(jù)的表達方式達成一致,這種表達方式就會應(yīng)用到應(yīng)用程序以后的版本中,甚至是全新的應(yīng)用程序中。這種一致的表達方式可以極大地縮短開發(fā)時間。這就是上述賽車示例的工作原理-這里的一致是指“引擎”的代碼是結(jié)構(gòu)化的,這樣就可以很容易地替換成新代碼(即新引擎), 而不需要找廠商幫忙。這也表示,引擎創(chuàng)建出來后可用于其他目的,可以把它安裝到另一輛車上,或者用它驅(qū)動潛艇。
除了數(shù)據(jù)表達方式的一致性外,OOP編程還??梢院喕蝿?wù),因為較抽象實體的結(jié)構(gòu)和用法也是一致的。例如,不僅把輸出結(jié)果發(fā)送給設(shè)備(如打印機)所使用的數(shù)據(jù)格式是一致的,而且與該設(shè)備交換數(shù)據(jù)的方法也是一致的,這包括它理解的指令等?;氐劫愜囀纠?,要達成的一致做法包括引擎如何連接到油箱,如何把驅(qū)動力傳送給車輪等。
顧名思義,OOP技術(shù)要使用對象。
點擊加載更多評論>>