Re: [討論] Optional operation 的使用時機?

看板java作者 (沉默是金)時間16年前 (2009/03/08 14:48), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/7 (看更多)
※ 引述《H45 (!H45)》之銘言: : : 有點像是 template method 的 hook method. (這不是很好的例子 :p) : 只回這段。 : 在 state pattern 設計中,一個狀態類別有許多狀態轉移成員方法 : http://caterpillar.onlyfun.net/Gossip/DesignPattern/StatePattern.htm : 然而,有些狀態轉移是沒有作用的,這種情況會出現 optional operation 的影子。 : 假設現有兩個狀態「移動」和「靜止」,兩個事件「走」和「停」 : 狀態為「移動」的時候,若發生「停」事件,則狀態轉移至「靜止」 : 狀態為「靜止」的時候,若發生「走」事件,則狀態轉移至「移動」 : 然而,「移動」的時候,若發生「走」事件,則狀態仍然停留在「移動」 : 狀態為「靜止」的時候,若發生「停」事件,狀態也是不變。 : 可能,這有些像 optional operation 但又不完全是 : 或者我直說,這不是 optional operation。 : 因為 optional operation 是可以選擇實作或者不實作 : 而實作又分為定義完整的行為與拋出 UnsupportedOperationException 兩種。 : 但是此例狀態轉移卻完整地定義,並不存在 optional operation : 所有的行為都需要實作,不會有不支援的運算這種例外發生。 : 所以....是不是我誤會了您想要表達的意思!?? ^^ 前輩何必多禮 XDD 每次都推文之後才想起這裡推文有時間限制...(汗) 我著眼的比較主要在於某些狀態下某些method 可能會是不合法的. 當然你可以視為這個行為止是停在現有的狀態 , 如你原文的例子 , 但有時候這些行為是根本不應該發生 , 就有可能會弄成 UnsupportedOperationException. 當狀態的行為跟狀態數量都多的時候 , 這並不是不可能的事情. :p (當然 , 會出現這種狀況時通常也是已經陷入設計泥團了就是.) 如果是嚴謹的 state pattern 加上考慮到容錯性是不應該出現這種狀況 , 不過這裡只是試著舉出幾個 optional operation 可能出現的狀況. 主要是想探討什麼時機跟環境會適合使用 optional operation , 原文的 1.2.3 情境我是認為都可以不用 , 只是舉幾個曾經看過使用 optional operation 的例子. @@ -- 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 ※ 編輯: TonyQ 來自: 221.169.78.140 (03/08 14:49)

03/08 14:56, , 1F
XDDD 我可以體會那種狀態超多、事件超多的大災難
03/08 14:56, 1F
文章代碼(AID): #19isf5lp (java)
討論串 (同標題文章)
文章代碼(AID): #19isf5lp (java)