推 stupid0319:複雜化嗎? 10/12 23:08
→ wendly777:跟大大的大作相比,確實是複雜了一點,不過我拿掉switch 10/13 00:25
→ wendly777:也讓迴圈變成一份,並保留了擴充性與可讀性,另外 10/13 00:27
推 softwind:這個不錯 不過再改一下 就變成JNI了 XXD 10/13 00:29
→ wendly777:或者畫法有幾十種,我的寫法應該比較容易讀 10/13 00:31
推 stupid0319:這樣寫法是不錯啦,只是如果沒封裝好,到處都是含數 10/13 01:03
→ stupid0319:維護也會被含數迷惑 10/13 01:05
→ wendly777:請問有什麼比較好的具體改法嗎? 10/13 01:10
推 stupid0319:一個含數內只有幾行程式碼其實沒必要吧 10/13 01:12
→ stupid0319:到不如用switch case,執行速度也比含數呼叫還快 10/13 01:13
→ loveme00835:不, 其實有時候正是需要抽象化和可讀性, 才會有許多小 10/13 01:15
→ stupid0319:維護起來也只要修改case內容 10/13 01:15
→ loveme00835:函式, 維護需要改case是很糟的事情, 因為變成不是你要 10/13 01:16
→ loveme00835:公開原始碼, 就是你要為了別人提出的擴充需求去改你 10/13 01:16
→ loveme00835:的程式 10/13 01:16
推 loveme00835:有時候為了維護, 你必須用執行速度來換, 被函式迷惑通 10/13 01:19
→ loveme00835:常是沒有適當的命名, 或是維護的人不會善用工具, 但也 10/13 01:20
→ loveme00835:有可能是設計欠佳的關係 10/13 01:20
推 softwind:不是歐 switch的jmp是線性的 case多一點 call func不一定 10/13 01:38
→ softwind:都會輸 switch就我經驗 實在是養那些老人的code... 10/13 01:39
→ softwind:通常switch放enum, 後續switch case一定要改一大堆... 10/13 01:40
→ softwind:但是 如果你剛接案子就好笑了 被老人電假的 "你就這邊加 10/13 01:41
→ james732:聽說switch可以用查表法,使得速度是常數? 10/13 01:41
→ softwind:code那邊加code 路就通了" 真是唬瀾... 10/13 01:42
→ james732:不過switch的case太多 就算不影響速度 實在也超醜的... 10/13 01:45
推 softwind:錯誤最大宗來源 漏掉的else 和 switch的default 10/13 01:49
推 loveme00835:程式碼漂亮為優先吧 XD 10/13 01:51
推 purpose:現在大家都講求要 refacor 了 10/13 02:07
→ wendly777:如果可以改掉printTriangle的介面,我認為有更好的寫法 10/13 09:48
→ wendly777:可以改寫成printTriangle(int level, DRAW draw) 10/13 09:49
→ wendly777:之後要傳入的draw function是客戶自己實作,一勞永逸 10/13 09:49
→ wendly777:DRAW為interface,每個實作draw為object,除非interface 10/13 09:49
→ wendly777:定義得不夠好,不然幾乎不用改code 10/13 09:50