业务处理与用户界面分离的设计方案_第1页
业务处理与用户界面分离的设计方案_第2页
业务处理与用户界面分离的设计方案_第3页
业务处理与用户界面分离的设计方案_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、业务逻辑与用户界面分离的设计方案概述业务逻辑是指软件中与业务相关的数据的加工过程,一般可以分为以数据处理为核心的数据流,以及以控制调度为核心的控制流,在软件系统中起着核心的、支撑的作用。架构设计师在软件架构设计时,应该根据需求分析明确系统中的数据流和控制流,这不仅对相关的人员深入了解和整体把握软件系统的运行非常有益,而且能够指导接下来的模块划分、接口定义工作的开展。用户界面是软件用来接受用户操作和向用户反馈信息的接口。用户可以通过它启动、监控和终止软件中业务逻辑,可以说几乎任何软件都离不开用户界面。用户界面的重要性在国内普遍得不到重视,而它的重要性却是不可因此而被忽略的:一方面它本身就承载了一

2、部分功能需求的实现,另一方面很大程度上决定了用户的体验感受。目前,公司几乎所有的软件中,用户界面和业务逻辑都紧紧地耦合在一起,基本上形成了一个有机的整体。主要体现者如下几个方面:1)在控件的事件处理函数中执行业务逻辑相关的操作,如在云台控制按钮的单击响应函数中发送云台控制命令;2)在执行业务逻辑的线程中向界面主线程发送消息,如解码线程中发送消息现实视频消息;分析先举个例子:某系统中云台不仅可以通过用户界面的按钮进行控制,而且可以通过红外遥控器进行遥控,还可以通过网络控制界面进行控制,那么云台控制所使用的串口就成为这三者共用的关键资源。在紧耦合系统中,这三者通常在三个线程中执行,因此串口的访问就

3、必须进行加锁保护,以避免出现访问冲突避免命令发送被打断而造成云台接收到错误命令。设想一种场景:用户通过用户界面云台控制按钮操作云台,但是由于红外遥控器连续发送多条云台控制命令(突发),而造成用户界面无法立即获取获取串口资源而阻塞,这会出现什么情况呢用户界面操作暂停响应,用户以为程序死了。要想解决这个问题,总归有很多种方法的。但是我们来看看下面这个思路:我们将“获取串口资源访问权限,然后通过它发送云台控制命令”从这些线程中剥离出去,将其作为系统中业务逻辑的一部分命令处理线程看作是云台控制命令的Processer,而这些线程(界面主线程、遥控响应线程、网络控制线程)则是云台控制命令的Provide

4、r。本质上来说,界面主线程实际上就是个将用户操作转换成命令处理线可识别的消息而已。这样就就把用户界面上云台控制操作分成两步:1)将用户操作转换成控制消息;2)集中执行控制消息。用户界面和业务逻辑各司其职,分别执行其中的1)和2),之间的接口也很明确控制消息。用户界面和业务逻辑间的紧耦合,不仅会降低软件的模块化、层次化程度,同时在某种程度上会增加其复杂性,使得软件代码的维护难度加大,而且其可定制性、可扩展性等也会受到影响。用户界面和业务逻辑分离,从某种程度上可以缓解或解决上述问题:1. 用户界面相关的代码和业务逻辑相关的代码可以最大限度地相互分离,由于两者之间的接口可以做到很明确,因此两者的代码

5、在一定程度上可以独立维护,这样有利于分工协作、并行开发,软件代码可维护性以及软件模块化、层次化也会得到改进;2. 在确定了用户界面和业务逻辑之间的接口后,用户界面的开发可以根据用户需求进行定制开发,而不会影响软件中的业务逻辑部分,这样可以增加代码的复用,一定程度上提高了软件的可定制性、可扩展性,直接收益就是能节省开发成本;3. 用户界面和业务逻辑甚至可以完全独立,作为两个独立的进程运行,这样在一定程度上会影响程序的运行性能,但是在某些应用中是完全可以接受的。这样还有个好处,用户界面的开发可以由开发人员选择自己最熟悉的、或者最适合的开发工具进行;方案实现用户界面和业务逻辑的分离,最重要的实现是数据的同步机制。如果用户界面和业务逻辑集成在同一程序中,或者不同程序中但运行在同一台机器上,两者之间的交互采用线程间通信机制或进程间通信机制,交互的数据可分为:1. 用户界面向业务逻辑发送控制消息,控制消息可分为:配置业务逻辑的消息,查询系统状态的消息,产生业务处理的消息这个一般可以用消息队列来实现(支持跨进程提通信);2. 业务逻辑向用户界面提交要在用户界面上显示的信息,可以划分为两类:普通的界面刷新消息,如告警信息、状态信息等这个可以用消息队列来实现;需特殊的处理的信息,如视频数据等这个一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论