精華區beta Programming 關於我們 聯絡資訊
※ 引述《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