精華區beta OOAD 關於我們 聯絡資訊
※ 引述《adrianshum (Alien)》之銘言: : ※ 引述《ericwang1017 (Eric)》之銘言: : : 很高興有人發表意見... : : 不過,簡單的來說,程式怎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 其實問題很簡單....看p207的圖就知道 invoker 是remoteControl,他組裝了一個Command 而這個command是super class 而不是sub class 這個問題是 書上的範例把invoker要組裝的commmand組到ConcreateCommand 但是應該是組裝Command.... 故我認為那邊有問題 這樣大家應該看的比較懂了吧.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.243.237.65