※ 引述《ericwang1017 (Eric)》之銘言:
: ※ 引述《kojilin》之銘言:
: : 如果英文中文都是p212
: : 我認為這樣寫無傷大雅
: : 他並未使用concrete class當作method的signature
: : 只是在new時=左邊的type使用
: : 這並未影響pattern(這個pattern重點應該在註冊跟execute那邊吧)
: : 而不會影響到後來的使用
: : 他也不打算讓他再後來的程式去等於其他concrete class,所以沒多大問題才對
: : koji
: 很高興有人發表意見...
: 不過,簡單的來說,程式怎run是都沒問題是確定的
: 我所提的問題是語意的問題
: 書上的範例是
: LightOnCmd lightOnCmd = new LightOnCmd.....略
: 我的觀點是
: invoker 不應該知道細部的command...
: 所以這邊應該是
: Command lightOncmd = new LightOnCmd
: 以上
沒有翻書, 只從你的文字去猜你說的問題所在.
你說的是 invoker 不該 declare concrete command?
但問題是, Invoker 才是應該知道他想要跑什麼 Command
的人, 所以 Invoker declare 並 instantiate 他需要
的 command implementation 交由 Executer 去執行反而
才是合理的寫法.
除非 Invoker 做的是 delegate Command to executer 的角色,
但這就不是這 Pattern 涵蓋的範圍了.
Alien
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.72.0.45