MVC设计模式浅析

MVC设计模式浅析

MVC是复合模式,结合了观察者、策略和组合模式
——《Head First 设计模式》

组成部分

视图(View)

  • 用来呈现模型,从模型中获得数据并且显示它
  • 往往采用组合模式,如Android中的View、ViewGroup树,用于显示界面

控制器(Controller)

  • 获取用户的输入事件,分析它,并向模型发出对应的指令
  • 往往采用策略模式,对于视图而言,控制器就是策略,当视图收到输入事件时,具体的对策会交给具体的控制器完成,视图并不关心工作是怎么完成的

模型(Model)

  • 持有所有的状态、数据和程序逻辑。模型没有注意到视图和控制器,它只对外暴漏了操纵和检索状态的接口,并发送状态改变他的观察者们
  • 采用观察者模式。模型是主体,视图等是观察者,当模式的状态改变就会通知它的观众,比如视图会根据模型的状态不同显示不同的数据

一个具体例字的分析——音乐播放器

视图——PlayerActivity

布局为LinearLayout,里面还前有不同的layout,这样构成了View树,体现了组合模式。PlayerActivity的布局中有很多的button、progressBar等等。视图通过Android内部的视图树机制从根部开始开始分发用户的输入事件,交由View.OnClickListener处理

控制器——各样的Listener

这些控制器会解析用户的输入事件是什么,如对于seekBar而言,会判断是否为拖拉进度条,如果是,那么就会向模型(PlayService)发送广播,通知后台Service改变播放的进度。视图把这一切都交由listener处理,体现了策略模式

模式——PlayService

里面只有MediaPlayer对象,保存着所有的播放状态以及音频流文件。Service并不与Activity进行绑定。当Service进行改变的时候,会发送广播给Activity,体现了观察者模式。

你可能感兴趣的:(设计模式,mvc)