样的变化。–一旦模型的数据发生了变化,模型需要通知所有相关的视图做出相应的变化。–这样的方式可以通过观察者设计模式完成。动态特征(场景Ⅰ) ?场景Ⅰ用户输入导致模型变化,并触发变更- 传递机制。–控制器接受到事件,解释事件并且启动模型的服务过程。–模型执行相应的过程,并导致内部状态的变化。–模型调用其更新过程,向所有登记请求了变更-传播机制的视图和控制器发出通知。–每个视图从模型中读取新数据并且重新显示。–每个控制器修改自己的行为,比如禁用某个功能。–最初的控制器恢复控制并从事件处理过程返回。动态特征(场景Ⅰ) : Controller : Model : View service handleEvent notify update display getData update getData ?用户输入导致模型变化,并触发变更-传递机制的过程动态特征(场景Ⅱ) ?场景Ⅱ初始化过程–创建模型实例,并初始化其数据。–创建视图对象,并用对模型的引用作为初始化参数之一。–视图通过调用附属过程支持变更-传递机制。–视图创建控制器,此时将模型和视图的引用作为参数传递给控制器初始化过程。–控制器通过调用附属过程来支持变更-传递机制。–初始化完成,应用程序开始处理事件。(初始化过程可根据情况调整) 动态特征(场景Ⅱ) ? MVC 系统的初始化过程 Main prog. Model View Controller initialize view model,view start Model attach makeController initialize attach controller 结构( 1) ?模型组件包含了应用程序的功能内核。–封装了相应的数据并输出执行特定应用程序处理的过程。–控制器代表用户调用这些过程。–模型也提供访问它封装的数据的函数,这些函数可以由视图组件使用。