V2

在V1版,會發生一些問題!
因改成

就像有個人(A visitor做裝潢師) 在B class家外面,B開放(accept)A進來, B不須知道A是要來幹嘛,可是A確知道,應該在B家如何[裝潢] 專門為B房屋
現在A要跑到D class家去
A在D家外面,D開放(accept)A進來,D不須知道A是要來幹嘛,可是A確知道,應該在D家如何[裝潢] 專門為D房屋


(C visitor做清潔工人)在B class家外面,B開放(accept)C進來, B不須知道C是要來幹嘛,可是C確知道,應該在B家如何[清潔] 專門為B房屋
現在C要跑到D class家去
(C清潔工人)在D家外面,D開放(accept)C進來, D不須知道C是要來幹嘛,可是C確知道,應該在D家如何[清潔] 專門為D房屋
B and D class 不須準備各自裝潢function and 清潔function
當讓A or C 進來,A和C 就會知道自己要在這裡幹嘛!

這樣更可以利用多型(Polymorphism)概念,但會破壞B 和 D CLASS 封裝,並且降低效率,因為visitor必須利用BD point 去操作他們,
V1是直接用他們BD 的方法直接處理。

 


V1

就像有個人(A visitor做裝潢師) 在B class家外面,B開放(accept)A進來, B不須知道A是要來幹嘛,可是A確知道,應該在B家如何[裝潢] 專門為B門屋
現在A要跑到D class家去
A在D家外面,D開放(accept)A進來,D不須知道A是要來幹嘛,可是A確知道,應該在D家如何[裝潢] 專門為D門屋


(C visitor做清潔工人)在B class家外面,B開放(accept)C進來, B不須知道C是要來幹嘛,可是C確知道,應該在B家如何[清潔] 專門為B門屋
現在C要跑到D class家去
(C清潔工人)在D家外面,D開放(accept)C進來, D不須知道C是要來幹嘛,可是C確知道,應該在D家如何[清潔] 專門為D門屋

B and D class 各有各自裝潢function and 清潔function
當讓A or C 進來,他們就會去執行B and D 某個 function 為 A C準備

 

亂七八糟......

arrow
arrow
    全站熱搜

    eric1300460 發表在 痞客邦 留言(0) 人氣()