java 板


LINE

偏離原題所以另闢討論串. 想討論一下 optional operation 的狀況 , 基本上我討厭這種設計 , 所以我很少用 . (我個人認為這已經是過度設計了.) 因為做了某個操作後 , 會可能會出現夢都夢不到的不支援例外 , 要去考慮這可能性這實在是太麻煩了. ──────────────────────────────── 我大概就思考上歸納一下會用 optional operation 的幾個主要環境因素 , 1.這個功能是非常普遍的 (至少佔子類別的大多數類別會用到) -相對的碰上失敗的狀況不多 , 可以純粹當成 RuntimeException/Error 來看. 2.大多數時候會以超類別的面貌進行操作時. (ex. state/strategy pattern) -有時候雖然功能可能普遍性不那麼高 , 但是因為要以超類別進行操作 , 會將method 上提到超類別 , 並出現部份的 optional operation 狀況, 有點像是 template method 的 hook method. (這不是很好的例子 :p) 3.純粹是覺得子類別有可能會用上就寫了...- -+ (這種狀況是最糟的) ──────────────────────────────── 因為我其實是不喜歡 optional operation 的 , 所以順便討論一下對所謂 "過度設計" 的看法... 隨著知道各種設計 pattern 的時間越來越長 , 現在 pattern 大多用來作為溝通跟瞭解別人寫的程式的知識 , 而越來越少自己在程式中以實做 pattern 作為第一考量, 至少是比剛學 pattern時少. (我相信隨著時間過去還會更少...:p) 對於設計方案的練習是很好 , 不過我越來越認為 pattern 就像遞迴一樣, 你一定會發現 "就是這個!!!這程式用這個真是天作之合的!!!" 的時候, 到那時候再用就好 , 其他時候就本著自己的判斷來寫吧... 像我有一陣子濫用 state , 後來又有一陣子拼命用 singleton , 後來都吃到苦頭 , 想想自己都覺得很蠢.orz 設計方面的議題很難論斷 , 不過透過經驗的分享與交流應該會有一點幫助 . 不過有幾個 pattern 算是神龍見首不見尾 , 很難知道自己有沒有掌握... 像 MVC 這個 pattern 雖然概念上很清楚 , 但是實做上不太容易區分 m-v-c 三個部份. 常常聽到設計師(包括我也曾經這樣)會說自己用了 MVC , 但是卻無法對資料、顯示、邏輯這三個區塊 , 在實做中的引用作進一步的說明 , 於是最後的話就是 "我程式有用 MVC 概念(用在哪?) 嗯...(開始想) " 主要想說的是大部分狀況下 , pattern 應該是由最後程式的輪廓所描述出來 , 而不是根據設計師心中的信念所描述 ... 前者是在各種複雜的腦力激盪出來後的事實 , 後者只是設計師無謂的偏執而已...... -- What do you want to have ? / What do you have? 從書本中,你可以發現我的各種興趣。 從CD中,你可以瞭解我所喜歡的偶像明星。 或許從文字你很難以瞭解一個人,但從物品可以。 My PPolis , My past. http://ppolis.tw/user/Tony --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 221.169.78.140
1F:→ TonyQ:當然採用h45 說的分離介面有時也是更佳解,只是需要判斷介面. 03/08 09:05
2F:推 H45:你的 1. 2. 3. 的 2 我看不太懂,能否舉個實例幫助了解呢 :) 03/08 13:08
3F:推 qrtt1:使用時機:1.當你是設計者時。2.當你有那個靈感時 @@ 03/08 13:28
4F:→ TonyQ:複合模式的狀況下應該會有2的影子 , 實例現在一時想不起來.. 03/08 13:49







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP