设计模式在数字电视软件开发中应用.docVIP

  • 0
  • 0
  • 约4.23千字
  • 约 8页
  • 2018-09-20 发布于福建
  • 举报

设计模式在数字电视软件开发中应用.doc

设计模式在数字电视软件开发中应用

设计模式在数字电视软件开发中应用   为了提高数字电视软件开发过程中对软件需求变化的适应性,综合地使用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())创建该协议的数据设备消息

文档评论(0)

1亿VIP精品文档

相关文档