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,体现了观察者模式。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值