Re: 物件導向的缺點?? - 精華區OOAD
文章推薦指數: 80 %
物件導向的功用除了程式碼再利用, 還有team work 和應付變化等等的優勢, 而其中最重要的就是應付變化。
要應付變化基本上就是使用繼承和多型, ...
批踢踢實業坊
›
精華區betaOOAD
關於我們
聯絡資訊
返回上層
作者tinlans()看板OOAD標題Re:物件導向的缺點 ??時間ThuJun1213:46:422008
※引述《ji3g45j(pig)》之銘言:
:※引述《SureWin(surewin)》之銘言:
::想問一下
::現在大家都用物件導向 的分析設計甚至
::coding 現在很熱門
::我想問一下 那它有沒有缺點阿
:: 有沒有 什麼資料 是探討它的缺點的
::
:C++比C擁有的語法多得太多了,只要對C++沒有深入了解的人是非常容易寫出
:效率差的程式,這大概就是缺點吧。
:為什麼要寫軟體,無非就是要創造一個現實能用的產品。
既然談到現實世界,
:物件導向就變得非常得有用,它讓你的程式設計的思考方向,很趨進現實世界
:所需要建立的各種元件來達成功能,而且有時後元件還能夠重複使用。
物件導向的功用除了程式碼再利用,
還有teamwork和應付變化等等的優勢,
而其中最重要的就是應付變化。
要應付變化基本上就是使用繼承和多型,
多型在C也可以實現,
在struct裡利用一個int或enum欄位標示真實型別,
然後放個union或void*型別的datamember,
而virtualfunction的概念也可以用functionpointer實作,
而這些type和pointer的切換全部由programmer負責,
若是OOPL的話可以由compiler幫忙產生相關的code,
所謂的效率變差問題完全不存在,
C要寫成彈性高到能應付多變的需求時也是需要手寫這些code,
而這些手寫的code未必會比compiler內部產生出來的還有效率,
發生的人為失誤的機率也會提高。
如果你開發的軟體不需要應付變化,
生命週期也很短,
那麼不使用物件導向機制也可以做得很好,
效率也會比較棒,
C++也允許programmer這麼做。
彈性、效率、記憶體用量常常是難以兼得的東西,
物件導向本身偏重在彈性,
選了物件導向基本上就是選了彈性犧牲另外兩者,
當然在一個專案裡物件導向絕對不是allornone的東西,
你可以選擇偏向UI的地方使用物件導向,
以獲得最大的彈性和應變力又不失效率,
因為用80/20rule來審視的話UImodule的話,
它通常不會是影響80%效率的那20%程式。
我個人都是先用純OO把程式寫一遍,
真的需要效能的話再用效能分析器去查效能瓶頸在哪,
不然每寫一行就要擔心它效率好不好,
東西不知道要寫到哪天才寫得出來,
上個世紀的程式偏小所以很多programmer這樣做沒問題,
但那種做法在這個世紀行不通。
至於學生做研究的話方法可能會做產品不太一樣,
演算法的部分可能也會用OO做抽象化,
讓演算法和演算法細部的行為可以在runtime切換,
提升實驗的效率和數據的豐富性。
--
Ling-huaTseng([email protected])
DepartmentofComputerScience,NationalTsing-HuaUniversity
Interesting:C++,Compiler,PL/PD,OS,VM,Large-scalesoftwaredesign
Researching:SoftwarepipeliningforVLIWarchitectures
Homepage:https://it.muds.net/~uranus
--
※發信站:批踢踢實業坊(ptt.cc)
◆From:61.230.222.248
推wupojung:缺點不會的人就是不會...不熟的人會亂寫06/2301:05
推opman:不想學的,還是不想學.07/0111:58
推revivalworld:@[email protected]07/1223:00
推legnaleurc:哪個東西不是這樣?XD07/1415:57
延伸文章資訊
- 1程序導向和麵向物件程式設計的區別和優缺點 - 程序員學院
程序導向和麵向物件程式設計的區別和優缺點,面向於誰,就更看重於誰程序導向當需要實現一個功能的時候,每一個具體的步驟都要親力親為, ...
- 2物件導向的優缺點 - w3c學習教程
1、易維護. 採用物件導向思想設計的結構,可讀性高,由於繼承的存在,即使改變需求,那麼維護也只是在區域性模組,所以維護起來是非常方便和較低成本的。
- 3物件導向技術的光環效應 - Huan-Lin 學習筆記
在碰到推廣OO 技術的場合,常會聽到傳統的程序導向分析和物件導向分析的 ... 反OO 言論的感染,而沒有機會實作OO、深入了解OO 實際的優點(和缺點)。
- 4程序導向與物件導向的區別 - w3c菜鳥教程
程序導向與物件導向的區別,1 程序導向procedure oriented programming pop 以事件為中心的程式 ... 缺點:沒有物件導向易維護、易複用、易擴充套件.
- 5Re: 物件導向的缺點?? - 精華區OOAD
物件導向的功用除了程式碼再利用, 還有team work 和應付變化等等的優勢, 而其中最重要的就是應付變化。 要應付變化基本上就是使用繼承和多型, ...