软件框架
框架要解决的问题是什么?这个问题感觉不能一概而论,就目前我遇到的项目实际来说主要是要解决以下几个问题
复用
并行开发
跨平台
项目背景:视频监控领域下,C/S & B/S模式的PC客户端软件
目标:开发一套公用的组件集合,在C/S B/S架构下都可以复用构件,并且实现模块业务灵活组合。
主要考虑分析了puremvc框架的适用性
1. puremvc的轻量性,引入简单。
2. 解耦合方面变现出色,可以很好的并行开发。
3. 提供了组件间通信交互的消息总线,可以灵活的组合多个组件业务。
4.组件可以很好的动态增删。
1) puremvc可能造成大量的代码冗余,强化了command的和mediator的存在,很小的业务组件都必须创建proxy和command甚至是meidiator。
2)在监控这种以大量数据,长链接不间断传送,并且用户界面以毫秒级未单位进行更新的软件应用中,proxy的职责范围难以细分。
从服务端获取码流数据和解码显示的实现,应该是作为一个域逻辑的数据整体(proxy)还是业务逻辑(command)呢?
尤其是构件中依赖了更底层的构件(例如视频解码播放库),这种底层组件,将数据处理和YUV显示已经糅合在一起,对外不可见。
这种情况下是否应该认为整个监视的整体组件就是一个proxy,分担了mediator的职责?因为本软件构件范围内,UI的视图被转交了控制权给其他的底层库。
一个窗口组件的mediator只能受理鼠标操作的业务,窗口主题视频内容数据的更新变得不可见。