- 0
- 0
- 约4.23千字
- 约 8页
- 2018-09-20 发布于福建
- 举报
设计模式在数字电视软件开发中应用
设计模式在数字电视软件开发中应用
为了提高数字电视软件开发过程中对软件需求变化的适应性,综合地使用MVC模式、抽象工厂模式、观察者模式、模板模式和策略模式,从对象层建立、消息驱动和行为扩展三个方面实现了一种软件架构设计,有效地降低了系统耦合性,提高了开发效率。
【关键词】数字电视软件 MVC模式 抽象工厂模式 观察者模式 模板模式 策略模式
1 引言
目前,在数字电视机顶盒的设计过程中,对软件部分的需求变化日益增高。这些变化集中体现在用户界面、数字电视协议、业务功能、系统平台这四个方面。一般的业务功能除了搜台、播放、节目电子指南基本功能之外,还需要节目预约、前端检测等特定功能。每种功能的实现不仅需要基于特定的数字电视协议,包括欧洲的DVB、美国的ATSC、日本的ISDB等,也需要依赖特定的系统平台,根据客户的需求来设计不同的数据呈现方式和交互方式。为了迅速地应对这种需求变化,一般采用敏捷式开发模型,通过阶段性的迭代式开发,进行功能的扩展。在每个迭代过程中,为了实现软件的可修改性和软件模块的复用,提高软件开发效率,减少出错,本文综合地应用了几种基本的软件设计模式,针对用户交互、业务组织和数据解析等常见需求变化,实现了一种软件架构设计。
2 软件架构总体设计
如图1所示,软件架构中所涉及的静态类包括几个类别,分别是:视图类(View)、控制器类(Controller)、模型类(DVBFilter)、业务类(DVBEpg)、工厂类(DVBFactory)、消息中心类(Notificaction)和算法类(ConcreteStrategy)。这几种类的具体职能体现了以下基本设计模式的综合运用。
3 MVC模式
MVC是一种复合设计模式,可以由几种基本设计模式组成,实现方式因应用场景各异,例如WEB应用、APP应用等。它的设计原则是将应用程序划分为三个层次:视图层、控制器层和模型层,并规定层次之间通信的方式,将数据从视图中分离出来,使得界面和数据可以单独开发,让表现不依赖数据。在架构设计中View会响应输入设备的操作,并描画自身(Draw())。由于某些视图类对描画性能有要求,所以可以直接缓存需要的数据(CacheViewData);DVBFilter响应数据设备的请求,对得到的设备数据进行处理;Controller可以直接管理视图类和模型类,控制它们的生命周期和通信,也可以通过工厂类和业务类间接维护。由于视图类和模型类需要响应系统事件,所以对平台的依赖较大。因此,尽可能将逻辑处理放在控制类,便于重用。
4 观察者模式
MVC模式的设计重点之一就是三种类之间的信息交互。控制类观察视图、模型的状态,对感兴趣的数据、状态变化进行处理。借鉴观察者模式的特点,本文提出一种更为灵活的消息驱动方式。消息中心可以分为两大类:应用层消息中心(Notifaction)和系统层消息中心(OSNotifaction)。后者又可以细分为两个子类:输入设备消息中心(InputNotifaction)和数据设备消息中心(DemuxNotifaction)。系统层消息中心依附于独立线程(threadID),获取系统的事件(GetInfoFromOS())。视图类依据自身的特点需要关心某些外部输入设备的状态,例如鼠标或者触摸屏的点击;模型类则一般需要关心外部数据设备的状态,例如媒体流设备数据的就绪。因此,二者分别需要将自己作为观察者注册到对应的消息中心(AddObserver())。当有系统事件发生的时候,消息中心分别通过(NotifyWithEventType())和(NotifyWithTableType())进行通知,使得View可以执行(InputEventProcess()),DVBFilter可以执行(DataEventProcess())。在处理事件的过程中,如果需要对行为进行扩展,则需要向应用层消息中心发送特定消息(NotifyWithMessage()),让其观察者即控制类进行处理(BehaviourFunctionForView())、(BehaviourFunctionForModel()),完成视图类和模型类之间的通信;通过(DataSourceFromModel())完成其间的数据转化。
5 抽象工厂模式
控制类负责对业务进行建模,根据不同的协议创建不同的功能模块,它属于两个维度的变化。可以选择抽象工厂模式构建业务对象层次。抽象工厂模式用于创建两个维度的产品线。抽象工厂代表了特定的协议类型,(DVBabstractFactory)制定具体工厂(DVBFactory)可以生产的DVB协议产品类型。(CreateDemuxNotifaction())创建该协议的数据设备消息
您可能关注的文档
最近下载
- 关注学生身心健康纳入日常管理.pptx
- 江苏海事职业技术学院单招职测参考试题库(含答案).docx VIP
- 2026年安庆医药高等专科学校单招职业适应性考试必刷测试卷含答案.docx VIP
- 卫生事业管理学课件 第二章 管理理论与管理职能.ppt VIP
- 电信行业业务基础知识.docx VIP
- Discovery软件操作完整版.pptx VIP
- QCR 9161-2023铁路工程建设项目临时用地复垦规范.pdf VIP
- 新目标七年级Unit7Itisraining第六课时.ppt VIP
- 新外研版九年级下册英语 Module 5 Unit 1 教案(教学设计).docx VIP
- 2018年新建南昌经景德镇至黄山铁路水土保持方案报告书.pdf
原创力文档

文档评论(0)