zoukankan      html  css  js  c++  java
  • 《Head First设计模式》 读书笔记13 复合模式 MVC模式

     

    《Head First设计模式》 读书笔记13 复合模式 MVC模式

     

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

     

    问题与解决方案

      有一群会叫的鸭子。

      想要在使用鸭子的地方使用鹅——适配器模式

      统计呱呱叫的次数——装饰者

      控制生产各种不同类型的鸭子——抽象工厂模式

      作为一个整体来管理鸭子——组合模式、迭代器模式

      观察个别鸭子的行为——观察者模式

    MVC复合模式

      Model-View-Controller :模型-视图-控制器,复合模式。

      MVC是由数个设计模式结合起来的模式。

                           

      例子:MP3播放器。

     

     

     

    M,Model模型:

      模型持有所有的数据、状态和程序逻辑。

      模型没有注意到视图和控制器,虽然它提供了操纵和检索状态的接口,并发送状态改变通知给观察者。

    V,View 视图:

      视图用来呈现模型。

      视图通常直接从模型中取得它需要显示的状态与数据。

    C,Controller 控制器

      控制器取得用户的输入并解读其对模型的意思。

      控制器把控制逻辑从视图中分离,让模型和视图之间解耦。通过保持控制器和视图之间的松耦合,设计就更有弹性而且容易扩展。

     

    MVC中的设计模式

      模型利用观察者模式让控制器和视图可以随最新的状态改变而更新。

      模型对视图和控制器一无所知,它们之间是完全解耦的,模型只知道有一些观察者它需要通知。模型还提供一些接口,供视图和控制器获得并设置状态。

      视图和控制器实现了策略模式。控制器是视图的行为,如果你希望有不同的行为,可以直接换一个控制器。

      视图内部使用组合模式来管理窗口、按钮以及其他显示组件。

    实例

      利用MVC控制节拍。

      如果需要更换另一个相似的模型(比如把节拍模型更换成心跳模型),使用适配器模式将模型适配成符合现有视图和控制器的模型。

    MVC与Web

      Web开发人员适配MVC,使它符合浏览器/服务器模型。我们称这样的适配为Model 2

     

      

    Model 2:你的手机也可用DJ程序

      要把原来Web版的改为手机Web版:

      模型不需要修正;

      创建Servlet控制器。我们需要一个简单的Servlet,可以接收HTTP请求,并对模型进行一些操作。

      创建HTML视图。我们用JSP创建一个简单的视图。它会从控制器中收到一个JavaBean,从这个Bean就可以得知它所有需要显示的东西。然后JSP将产生一个HTML界面。

  • 相关阅读:
    HTML DOM 06 节点关系
    HTML DOM 05 事件(三)
    HTML DOM 05 事件(二)
    HTML DOM 05 事件(一)
    html DOM 04 样式
    html DOM 03 节点的属性
    html DOM 02 获取节点
    html DOM 01 节点概念
    JavaScript 29 计时器
    JavaScript 28 弹出框
  • 原文地址:https://www.cnblogs.com/mengdd/p/3070677.html
Copyright © 2011-2022 走看看