1、对于界面之流,他要Get什么和如何Display我不管,可以给它对象和接口,他可以自己组合成自己的显示,显示永远都不是业务逻辑的部分;
2、对于界面之流,他要Change什么我要管,不能让他调用能够改变模型的接口,因为改变肯定是业务逻辑的部分,界面中直接调用方法来改变,意味着业务逻辑存在耦合到界面中的部分,这是不允许的。
3、总结,任何Change都必须通过UserCommand,让UserCommand这个抽象层来完成这个事情,一个参与者会有一系列的命令接口。
==============================================================================
备注:后来的一点领悟,任何改变和执行都是业务逻辑的部分。如果能够确保界面只能够调用Get?,可以通过const来解决。
a、界面得到一个const object* 或者const object&;
b、const对象或者指针,只能调用const方法,const 方法意味着no change