※ 引述《gsj.bbs@bbs.nchu.edu.tw (國王的新衣)》之銘言:
: ※ 引述《meltice.bbs@bbs.wretch.cc (三億兩千萬大散戶)》之銘言:
: > 使用OO的確符合人性
: 當你深入了解之後,就會了解這純粹是一句 "廣告術語"
: 但這句話的確是吸引了不少人來學習OO
: 因為一般人總是把OO與使用GUI的便利性聯想在一起
我想,使用OO,在設計階段時的一些違反直覺的架構,雖然很可能
會耗去不少時間(就算以非OO技術來設計,相信也要不少時間),
但是它主要帶來的好處就是面對需求變動時,所做的修改可以盡可
能的少,而這不就是我們夢寐以求的嗎?書籍中最常舉的例子,大
概就是以多型取代switch case吧?而這不就只是責任的觀念嗎?
當然,要設計出面對變動時不需修改太多的OO程式本身的確很不容易
,但是我們可以透過很多重構的手法來改善它,而循序式的程式經過
了這麼多年的研究,還是不容易做到後期的程式維護,我們常常還是
要深入每個曾經寫過的程式細節,然後才會發現,啊~這邊的邏輯修
改以後,那邊的flags要重設,並且在另一個迴圈裡要再加入一個判斷
,並且...隨著程式越來越大,每加入或修改一個小功能,要修改的地
方就越來越多,最後終於改不動了,專案便只得宣告失敗...
OO當然也會有類似的問題,但是它提供了"更多"的抽象化機制及間階層
的設立,讓架構的重新調整變得更方便,但是要付出的代價就是不斷的
學習以及對它一知半解的情況下,會帶來的災難。
但是就如同其他領域一樣,OO就是現代寫軟體的人的一項必備專業,
不只是GUI,只要想要利用更多的抽象化及間接性,就應該好好學習OO
所提到的許多"精神",但是光是"精神"是不夠的,還必須有適切的語言
及平台搭配才行,不然依然是路途難行。
OO不見得是最好的軟體開發方式,但是絕對值得花時間學習,至少可以
聽得懂別人到底在講啥米碗公。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.163.119