开发Web应用和桌面应用等需要处理GUI的应用时,经常会遇到设计变更的问题。如果是小规模的程序,从输入的处理到数据的保存,输出,只使用一份代码来实现,几乎不会有什么问题。
但是,当规模越来越大,就会有其他开发者和设计师等人参与进来。此时,如果只用一份代码进行管理,当设计师想要稍微修改一下设计时,就需要修改包含保存数据等部分的源代码。
此外,程序员只是修改一下处理的内容也可能影响设计。为了避免发生这种情况,常用的做法是将源代码分成model,view,controller来开发。简称MVC。
最近出现了希望对某个项目的改动能立即反映到画面中,希望修改数据库中的内容,能在画面中反映数据的变化双向联动需求。要实现这类需求,可以采用将模型或视图中更新的数据反映到另一方的view model。