※ 引述《sealoe@kkcity.com.tw》之銘言:
> 我想看point痛苦的原因
> 只是個人不習慣吧
> 就像有人覺得用循序程式語言(C,C++,basic等)寫程式很困難
> 用funcational language寫東西才是王道
> 但是一般人不一定會有同感
> 個人喜好罷了
> 我也覺得用C++寫程式搞OO根本是浪費時間
> 因為我不習慣
> 就像你覺得不用OO是自討苦吃ㄧ樣
用 C++ 寫 OO 其實可以節省很多時間,
因為 C++ 還有 template 這種程式產生器,
讓 C++ 的 OO 不管是寫起來或是看起來都很精簡,
但是有個前提就是要花很長的時間 study,
不過這個 study 是苦一次就能受用終身。
使用 OO 有一個很重要的原因就是責任轉嫁,
它可以將原本必須在某處集中處理的寫法變成分散處理
(問題本身還是必須集中處理,但是 OO 機制在背後會幫你做一些事情),
集中處理的最大缺點就是每次增加新東西,
就要跑去找到那個集中處理的點來修改程式碼,
分散處理的好處,是要求增加新東西的人多寫一些程式碼,
而集中處理的部分就交給 compiler 產生,
compiler 不會像人一樣有疏失,所以可以很安心。
當然,如果整個程式是你一人維護的,
這兩種方法的差距可能小到讓你看不見,
但是如果是 teamwork,選用前者會帶給大家很多麻煩,
集中處理的另一個缺點,
就是必有一塊程式碼是人人可改(講難聽一點就叫公車,人人可上),
有時候甚至會發生一個人改到另一個人寫的東西,
結果在做 cvs/svn commit 的時候發生 conflict,
然後導致 team 的成員之間互相強姦對方程式碼的現象發生,
這又是更實際面上會碰到的問題...
雖然 OO 這種東西並非純粹為 teamwork 而生,
但是對我而言它的意義純粹是為了 teamwork,
如果你寫的程式是將來打算 open source 給大家改的,
或是這個 project 本身就是要 teamwork,
那麼我會建議使用 OO 來設計。
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Chung Cheng University
Department: Computer Science and Information Engineering
Researching: Porting GCC and Implementing VLIW instruction scheduler in GCC
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.16 > ╰─╮
╚╦═╦╝ ╰ * From:218-171-138-13.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎