1、對于界面之流,他要Get什么和如何Display我不管,可以給它對象和接口,他可以自己組合成自己的顯示,顯示永遠都不是業務邏輯的部分;
2、對于界面之流,他要Change什么我要管,不能讓他調用能夠改變模型的接口,因為改變肯定是業務邏輯的部分,界面中直接調用方法來改變,意味著業務邏輯存在耦合到界面中的部分,這是不允許的。
3、總結,任何Change都必須通過UserCommand,讓UserCommand這個抽象層來完成這個事情,一個參與者會有一系列的命令接口。
==============================================================================
備注:后來的一點領悟,任何改變和執行都是業務邏輯的部分。如果能夠確保界面只能夠調用Get?,可以通過const來解決。
a、界面得到一個const object* 或者const object&;
b、const對象或者指針,只能調用const方法,const 方法意味著no change