各位先進早安。
小弟從小到大學習接觸的全都是面向導向語言。最
常用的是 PHP 與 Matlab/GNU Octave。換言之,
我從來沒有撰寫「物件」這東西的經驗。
最近買了二三本 JAVA 的書來學習,發現書中很多
例子使我跟不上作者的腳步。有的例子是「幹嘛抽
象化得這麼仔細?」,有的是「為什麼要做這件抽
象化?」。追根究底,我對於「物件導向」的思考
方式應該是零分吧。
我也試著把物件導向的優點與過去撰寫面向導向語
言的經驗結合在一起,例如在 PHP 中我了解使用
Function 以達到多次重覆使用相同運作的過程與
優點,但單單把 Function 抽象化成物件,似乎並
不能完全掌握到物件導向語言的優點啊。再加上,
物件裡又有成員與方法的概念,這已經超過我過去
經驗所能理解的範圍了。更不用談什麼繼承、多型
的概念了。
這種感覺就好像打籃球幾十年,卻遇到一個好教練
要你重練運球一樣。
在版上看了許多先進的文章,了解到小弟在「抽象
化」的能力有所不足。小弟並非本科生,使用程式
語言的需求也僅止於一些手算到斷掉也算不完的科
學運算及閒閒沒事做自己架架網站。是不是因為這
些需求算是小 case 所以比較不容易使我了解到物
件導向的優勢?但小弟又覺得,「抽象化」對於思
考應該是一種非常有益的訓練,所以我仍想學習物
件導向語言。
說了很多蠢問題和廢話,小弟真心地想聽聽先進們
的分享,或是經驗談也好,以點破我完全搞不懂物
件導向的思考方式之盲點。拜謝。