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