zoukankan      html  css  js  c++  java
  • 【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做出相应调整。

      

  • 相关阅读:
    ROS入门笔记(三):二进制包与源代码包
    zsh 使用通配符功能
    Linux显示行号设置
    Linux、Ubuntu、CentOS安装和配置zsh
    Python中出现 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 12-13: truncated UXXXXXXXX escape
    Python数据分析:pandas玩转Excel(三)
    【WP8】ScrollViewer滑动到底触发器(ListBox失效)
    【WP8】扩展CM的INavigationService方法
    【WP8】仿QQ提示消息
    【WP8】键盘弹出时控制Frame位置
  • 原文地址:https://www.cnblogs.com/laizhd/p/3639250.html
Copyright © 2011-2022 走看看