CSSE 板


LINE

: : -- :



※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 210.208.46.43 : ※ 編輯: mgtsai 來自: 210.208.46.43 (02/10 06:25) : 推 tinlans:我有點好奇,你是不是讓 visitor 做太多事情了,並不一定 02/10 16:14 : → tinlans:所有的事情都要給 Accept() 轉呼叫的東西通通做完吧, 02/10 16:15 : → tinlans:反正會選用 visitor 的時候,已經決定破壞被 visit 對象 02/10 16:15 : → tinlans:的封裝性了,你可以把相關的資訊記錄在這兩者之外的地方。 02/10 16:16 : → tinlans:包括需要這些資訊才能完成的動作,也一併抽出 visitor。 02/10 16:17 我想封裝性並不全然消失 在java如果修飾子不寫上public | protected | private的話 就會是packaged 這樣一來,在不同的package中使用這個物件時,無法存取內部資訊 封裝性仍然存在的 舉例:House是原繼承樹,Visitor我把它省略了,Main則是另一個package使用到House的 主程式。 =House= package myAPI.Test; public class Unstable_node implements Node { // Unstable的設定值 int configurationValue; public void accept(Visitor v) { v.visit(this); } } =Main= package home.work; import myAPI.Test.*; public class Main { public static void main(String args[]) { Node n = new Unstable_node(); // Access Deny, 這邊編譯不會過,資訊的隱藏機制仍然存在 // 封裝性並沒有完全消失 n.configurationValue = 1; } } 最後補一下,如tinlans所說的 visitor不應該做太多的事情,如果需要共享資訊的話 應該把它們提煉到另一個物件供house, visitor來存取 : 推 YuYuHo:vistor visit house,我覺得vistor最大的缺點 02/10 16:18 : → YuYuHo:是帶給house太大的負擔 02/10 16:21 : → YuYuHo:打錯字了,是visitor,剛打完麻將回來,win~~ya~~ 02/10 22:52 : → YuYuHo:假如說house的內部節點其實是不穩定的型態,結果會造成 02/10 22:54 : → YuYuHo:visitor的介面也變得很不穩定,很容易就搞得一團亂 02/10 22:55 : → YuYuHo:通常採用visitor時,house本身的結構可能就很複雜了, 02/10 22:57 : → YuYuHo:這時候還要管理節點的分派策略,還要維持節點穩定, 02/10 23:01 : → YuYuHo:這表示house做好後就不能隨便更動,很容易牽一髮動全身. 02/10 23:02 請問不穩定的型態是什麼意義 是指需求改變?還是設計的失誤? 為什麼house做好後就不能更動,這和visitor有什麼直接的關係呢 如果不採用visitor的話,那麼原本要加在繼承樹上面的功能又該怎麼處理? 牽一髮動全身我同意 但是使用visitor pattern之後 動到的「全身」應該會比不用visitor pattern來得少吧? 抱歉,我實在是不懂YuYuHo的這段推文 照他的說法,visitor pattern看似限制住了house擴充或修改的彈性 但是我不這麼認為.... 不採用visitor的話,當初用visitor在繼承樹上面加入的功能又該怎麼辦? 還有什麼更好的主意嗎? --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.213.121
1F:推 tinlans:其實我要說的破壞封裝性,是指 house 被迫 open 給 02/12 15:26
2F:→ tinlans:visitor 的部分,因為 visitor 本身跟 house 是分離的。 02/12 15:27
3F:→ H45:你說的沒有錯,我所要補充的是「封裝性」在另一個觀點來看,並 02/12 16:34
4F:→ H45:沒有消失。 我想我們所描述內容的應該不會造成衝突 02/12 16:38







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燈, 水草

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

TOP