2005-10-29

Tags: 程式語言

雖然現在一狗票的人都會OO的程式語言(Java、C++、C#...etc),但是寫出來的東西真的就用到物件導向的性質了嗎?說實在,真的蠻讓人懷疑的。很多人還是用Function language的概念在寫OO的程式。

從以前到現在,只要是接手概有的系統,總是會看到很多神奇的寫法。最常看到的就是超長的if..else判斷,不然就是if裡面又包了很多層的if。然後寫的人習慣又很不好,變數名稱用那種很沒意義的名稱(ex: x1,x2,x3...etc),再外加程式碼不縮排(或是亂縮排),關鍵處不加注解。這種東西看久了常常會讓我有種要"暴走"的衝動。還好我身上沒有哥吉拉的基因,不然大概除了暴走之外,還會表演噴火秀。說實在話,寫出這種鳥東西來,真的一點也看不出OO在哪裡,大概只會大喊"Oh..Oh..看無在寫啥小啦"

前陣子看了Design Pattern後,發現收獲很多,而且對很多我以前寫的程式感到汗顏(擔心是否有人接手我的程式後幹聲連連...囧rz),也才真的了解abstract、interface、polymorphism這些概念在實際運用的威力有多強。像那種超長的if..else判斷如果是用polymorphism的想法開發或是套用了state pattern後,就變的簡化了很多,而且符合軟体開發的Open Close Rule(註)。對於物件導向程式設計,看來我還有很多該努力的地方呀...>_<

註:這是指軟体開發該符合對修改封閉,對擴充開放的原則。不過...這個說來容易,做來就不容易了。