《Head First Design Patterns》笔记十五:MVC

来源:互联网 发布:淘宝店铺出售多少钱 编辑:程序博客网 时间:2024/05/20 07:51

 概述

    MVC是很流行的一种模式。不过并不是GOF定义的23种标准模式之一,我们可以称呼它为一种框架,其实本质就是一种特定的复合模式。

我们分析下MVC

 

    界面Viewer-controller, controller-model都是使用的策略模式。这样使得3者松耦合,可以灵活选择其他策略,我们想像下,是不是有不少厂商,把旗下电器,换个外壳,改个名字,照样拿出来卖的啊,有没有,有,他们就是换了个viewer来榨取最大利润。

   ok,里面还有观察者模式,当model状态改变的时候,往往需要通知viewer 和controller.比如控制model的温度上升,那么viewer面板上如果需要知道温度状况的时候,就需要订阅model的温度改变事件了,controller需要了解情况的时候,同样订阅事件。

   那么,我们可以说策略模式+观察者模式=MVC,ok,基本的MVC的确是这样。当然实际MVC应用会更加复杂。不过也只是更多的扩展罢了。

实例

    闲话休说,还是来点直观的例子吧。我们现在要做一个播放器,要有播放/停止,音量增加/减小,上一首/下一首歌切换功能。

好,那播放界面就是viewer,contoller控制音量增加/减小,播放/停止,等具体操作,实际数据都在model,

   1 首先实现Model,

    接口IModdel.cs:

 

  实际model实现SongModel.cs:

 

2.实现Controller

  IController.cs.如下

 

 SongController.cs:

3,接着就是实现界面Viewer.cs

4:运行实例了Program.cs如下:

 运行结果:

 

如上图,用户可以点按钮控制播放器了,播放信息出现在RichText框内

是不是感觉界面比较粗糙啊,汗,只是个范例。简单最好,哈哈。

 

上一篇:Head First Design Patterns》笔记十四:复合模式(Compound Pattern)