复制“被监视数据”(Duplicate Observed Data)
Observer/Observable模式
你有一些领域数据置身于gui控件中,而领域函数需要访问这些数据;将该对象复制到一个领域对象中。建立一个Observer模式,用以同步领域对象和Gui对象内的重复数据
一、动机
一个分层良好的系统,应该将处理用户界面和处理业务逻辑的代码分开
二、做法
1、修改展现类,使其成为领域类的Observer
2、针对GUI类中的领域数据,使用Self Encapsulate Field
3、编译,测试
4、在事件处理函数中调用设值函数,直接更新GUI组件
5、编译,测试
6、在领域类中定义数据及其相关的访问函数
7、修改展现类中的访问函数,将它们的操作对象改为领域对象
8、修改Observer的update(),使其从相应的领域对象中将所需数据复制给GUI组件
9、编译,测试