【HeadFirst设计模式】12.复合模式

定义:

  复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题。

要点:

  MVC模式是复合模式,结合了观察者模式、策略模式和组合模式。

  模型使用了观察者模式,以便观察者更新,同时保存了解耦。

  控制器是视图的策略,视图可以使用不同的控制器实现,得到不同的行为。

  视图使用组合模式实现用户界面,用户界面通常组合了嵌套组件,像面板、框架、按钮。

  这些模式携手合作,把MVC模式三层解耦,这样可以保持设计干净又有弹性。

  适配器模式用来将新的模式适配成已有的视图和控制器。

  Model2是MVC在Web上的应用。

  在Model2中,控制器实现成Servlet,而JSP、HTML实现视图。

传统的MVC:

  View依赖Controler、Model

  Controler依赖View、Model

  Model谁也不依赖,而通过观察者模式通知观察者更新状态。

  

Model2 MVC:

  Controler(Servlet)依赖Model,产生包含Model状态的Bean。

  View(JSP)接收Controler转换过来的Bean,获得Model的状态,产生新视图。

其它:

  在传统的MVC中,View会依赖Model,也会依赖Controler,根据观察

  view的内容有两种:

    (1)显示Model的状态

      这种情况下,View直接依赖于Model获得数据。

    (2)产生行为企图改变Model的状态

      这种情况下,View直接依赖于Controler发送请求。

  

  Controler会依赖Model和View

    (1)一般情况下,Controler依赖Model,发送消息给Model,而后Model由于行为导致的状态改变由Model自己的观察者模式输出。

    (2)有时候,Controler给发送消息给Model后,需要对View马上做出改变,这时会依赖View,控制View做出相应调整。

  

原文地址:https://www.cnblogs.com/laizhd/p/3639250.html