Re: [討論] Optional operation 的使用時機?
※ 引述《TonyQ (沉默是金)》之銘言:
: 偏離原題所以另闢討論串.
: 想討論一下 optional operation 的狀況 ,
: 基本上我討厭這種設計 , 所以我很少用 .
: (我個人認為這已經是過度設計了.)
: 因為做了某個操作後 ,
: 會可能會出現夢都夢不到的不支援例外 ,
: 要去考慮這可能性這實在是太麻煩了.
: ────────────────────────────────
: 我大概就思考上歸納一下會用 optional operation 的幾個主要環境因素 ,
: 1.這個功能是非常普遍的 (至少佔子類別的大多數類別會用到)
: -相對的碰上失敗的狀況不多 ,
: 可以純粹當成 RuntimeException/Error 來看.
: 2.大多數時候會以超類別的面貌進行操作時. (ex. state/strategy pattern)
: -有時候雖然功能可能普遍性不那麼高 ,
: 但是因為要以超類別進行操作 , 會將method 上提到超類別 ,
: 並出現部份的 optional operation 狀況,
: 有點像是 template method 的 hook method. (這不是很好的例子 :p)
: 3.純粹是覺得子類別有可能會用上就寫了...- -+ (這種狀況是最糟的)
: ────────────────────────────────
我想請教你,針對 J2SE core classes 中的 java.util.Collection 定義了 remove
系列的 optional operation,你認為這應該歸為上述的那一種(點)?
是否算是第二點?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.131.246
推
03/08 15:16, , 1F
03/08 15:16, 1F
我覺得有那麼一點 2 的味道,是因為 Collection 的 add/remove 是 optional
operation,也就是說最基本的 Collection 是唯讀的 object source(data source)。
那麼也可以設計成 Collection←MutableCollection,
類似:
javax.swing.tree.TreeNode←javax.swing.tree.MutableTreeNode
java.awt.image.Raster←java.awt.image.WritableRaster
|←java.nio.channels.ReadableByteChannel
java.nio.channels.ByteChannel+
|←java.nio.channels.WritableByteChannel
這一類的階層結構。
※ 編輯: sbrhsieh 來自: 218.173.131.246 (03/08 15:49)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 7 篇):
java 近期熱門文章
3
14
PTT數位生活區 即時熱門文章