DSkinLite最大限度的将界面和逻辑分离,使软件结构清晰。DSkinLite为轻量级界面库,适合构造复杂的,高效,绚丽的软件界面;同时DSkinLite中可以将不同功能模块的界面风格分来定义在不同的XML文件中,有效的配合的软件功能模块的划分,适合构建插件式软件平台界面系统。
1 一个简单界面插件设计示例(基于MFC)
示例以"插件式软件结构设计(一):构建基于插件式软件平台"讲到的相关知识为基础,为一个基于COM的插件式软件结构。
示例程序Release目录下:
Component.ini 文件控制插件的是否加载
[{538F6D99-B093-4525-1232-53C9557C1D62}]
Name=股票软件
File=StockDll.dll
Enable=1
其中Enable = 1 为加载此插件 Enable=0 表示不加载次插件.
界面表现为:
2 基于DSkinLite的插件式皮肤系统设计
下图为一个简单的插件式软件界面:
因为未来业务的不确定性,及可能的功能模块划分,我们可能需要对软件界面插件化。比如Message提示栏,Tab扩展栏,底边工具栏。每个模块可能由不同的人来开发,这样可以使用DSkinLite来分别配置每个模块所需要的界面控件风格描述。如:
这样global定义主程序和全局所需要的颜色值,字体,样式等。Stock_plugin.xml定义stock 模块或者插件所用的图片,样式等信息。Stock_plugin目录存储此模块所需要的图片等资源。同理,fund_plugin.xml定义fund模块所需要的图片,光标,控件样式等信息。
DSkinLite对这种特性的支持,使得界面设计这块也可以跟随模块的划分而划分,开发人员根据模块的划分,在程序模块集成之前,可以独立的使用DSkinLite设计本模块的界面需求。在模块集成之时,只需要将xml文件和相应的文件目录拷贝至主程序目录即可。
这种设计方式的优势在于,真正在软件界面方面做到,界面和逻辑分离,主程序界面和插件界面分离。降低将来的维护成本,同时提高了效率。
(示例源码整理中,稍后将在此文中发布)