Visitor, Bridge and Composite模式在CAD开发中的应用(1)

2011/06/14 CAD开发

CAD软件日益庞大,现有的大中型的CAD系统都有一定的历史,陈旧代码比较多。随着硬件设备的不断提升,操作系统的更新和用户不断提出的新需求,代码的重构和新特性的添加变得越来越困难。那么,如果在CAD开发的初始阶段,就使用适当的设计模式,立足于良好的架构,那么这个系统就会对变化更加敏捷,从而提高市场占有份额。

AutoCAD是一款市场占有率很高的软件,我觉得他成功的很大的一个因素是用户友好,不断改进交互界面。而这个要有良好的架构设计支持。对于CAD软件来说,架构设计至关重要。我见过的架构有:

  • 基于COM,所有的功能由COM组件封装起来。好处很多,但是在现在的操作系统下,尤其是跨平台的需求,就显得过时了。
  • 模块化。纵向,横向切分系统模块。使用小的内核模块,不断添加新模块。这个思路主要是指二进制模块,也就是dll为核心。好处显而易见,AutoCAD就是代表,很多软件都在想这个思路走。
  • Web。这个是下一代的产品,还不是很成熟。

模块化,有时候也可以在源代码级 实现。就是说一个或者几个文件,定义一些功能类,实现一个模块。这些源代码文件可以组织在不同的dll中,适合不同的需求。坏处就是需要更加繁琐的文档。这种设计适合软件核心的开发,达到最大的灵活性。我们也可以看到这个趋势。Windows7 开始,微软开始把内核的好多函数分成不同的,小的dll来实现,这样的话,很小的模块的变化,不会影响内核的震动。所以,源代码级别的模块重用设计,很适合核心代码的设计。而外围扩展模块,就可以在这些核心模块的基础上,进行扩展和开发。这个也是一个可以形成生态链的基础。

Search

    Table of Contents