复合模式 (composite)

7/15/2021

# 再认识 MVC

# 模型 Model

模型持有所有的 数据、状态 和 程序逻辑。模型没有注意到视图和控制器,他提供了操纵和检索状态的接口,并发送状态改变通知给观察者

模型实现业务逻辑

模型中使用的模式:

  • 模型中使用了 观察者模式,控制器和视图注册成为模型的观察者,当状态改变时,相关对象持续更新。模型完全独立于视图和控制器,同一个模型可以使用不同的视图,甚至可以同时使用多个视图。

# 视图 View

用来呈现模型,视图通常 直接从模型中取得 他需要显示的状态和数据。

视图中使用的模式

  • 视图使用了 组合模式,视图是 GUI 组件的组合,顶层的组件包含其他类型的组件,直到叶节点。

# 控制器 Controller

取得用户的数据,并解读其对模型的意思。 控制器不实现业务逻辑

控制器也要做一些决定,决定调用哪个模型的哪个方法,但这不能算是业务逻辑,业务逻辑指的是 管理与操纵模型中数据的代码

  • 控制器要求模型改变状态:控制器解读用户动作,并告知模型如何做出相应的动作。
  • 控制器可以要求视图更新:控制器可以将界面上的组件进行修改

控制器中使用的模式:

  • 视图和控制器使用了 策略模式,视图是一个对象,可以调整使用不同的策略,而控制器提供了策略