精華區beta OOAD 關於我們 聯絡資訊
※ 引述《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