当年,我跟朋友一起开发了一套小型的收费系统,其实是个很简单的数据库应用。这个系统是给某个服务提供商使用的,这个提供商有几种类型的客户,针对不同类型的客户有不同的计费标准和收费流程,而且不同类型客户的基本信息的数据结构也差别很大。那么很容易想到,把针对不同类型客户的收费业务,分别放在不同的用例里面,然后这些用例也分别对应了不同的数据表、业务逻辑以及用户界面实现。当然,为了做报表和统计分析的方便,所有的数据表都放在同一个数据库中;为了界面风格的统一,实现了不同用例的用户界面,也都集成在同一个MDI框架窗口里面,并且为不同的用例分别提供一个单独的菜单,还有一个收费首页,用户登录以后可以快速导航进入不同的用例即业务模块中。为了方便并行开发,我用.NET的动态程序集加载技术做了一个简单的插件体系,这样不同用例的业务逻辑和用户界面都可以在一些单独的模块中进行开发,最后插入到MDI的框架窗口中。当然这些单独的模块也会使用一些公共的组件,比如在所谓的数据持久层,我做了一个很简单甚至有些简陋的O/R Mapping机制。然而对于这个小型应用来讲,用例划分很清楚,数据表之间的关系也很简单,尽管简陋一点,也绰绰有余了,而且需求变更时还能方便地增删字段。开发的过程是快乐的,大家都享受着轻松和便捷。
当年,我跟朋友一起开发了一套小型的收费系统,其实是个很简单的数据库应用。这个系