行政区划程序的设计(六)

Author:水如烟

总目录:行政区划数据方案设计

 上一篇,行政区划程序的设计(五)

在行政区划程序的设计(一)中,我曾说过,“一个方案,尽量做到组织严谨,脉络清晰,分工明确”,“一般的,我是按应用范围和服务对象两者的结合来组织”。可真要做到,并不容易。到目前为止,我也仅仅在IDE上建立了五个空项目,一行代码都未曾写。确定使用UserControlQueryBase控件,也只是分析中确定下来的初步想法。

由于工作关系,我也只能是断断续续来想,来组织,来写文。

现在,我就盯着这五个空项目,想它们间的关系。项目在哪个范围内起作用,为谁服务,提供什么服务。

五个项目的确定,是初期的想法。在后面的实现过程中,是否需要调整?在我的经验中,初期想法很宝贵,不到最后,不要轻易改变初期的思路。项目可以分解,但某个项目的取消或合并,就会全盘否定当初的想法。

重新审视一下这五个项目:

LzmTW,可以忽略。

RegionalCodeLibary,负责与数据库直接打交道,不依赖任何其它项目(可能除LzmTW外,这点其它项目也是)。它对外提供版本数据的更新;输出信息视图,就一个DataTable两个功能。

RegionalCodeCommon,负责为WinForm或WebForm提供基础信息,也不依赖任何其它项目。它没有引用RegionalCodeLibary,因此,它不能直接取得RegionalCodeLibary提供的服务。在分析RegionalCodeApplication项目的编码要点时,说过有两个函数FUNCTION GetAllInformationsTable(ByVal QueryDataDate As String) As AllInformationsTable、FUNCTION IsSameDataDate(ByVal QueryDataDate As DateTime, CurrentDataDate As String) As Boolean可以放在这个项目上。但这两个函数的实现,肯定离不开RegionalCodeLibary的支持。现在问题来了,还有没有必要放在这里?放在这里有何用处?现在呢,我还是决定放在这里,不过是以接口定义的形式。它的作用是,当要移植到WebForm,编码者看到这个定义时,会思考这两个函数的价值,从而也体会出上文分析的思路。这可以说是思维的存档方式。况且,接口是可以在引用它的项目中直接使用的。

RegionalCodeCenter,负责向RegionalCodeLibary请求服务,对RegionalCodeApplication提供服务。它依赖于RegionalCodeLibary,同时,也依赖于RegionalCodeCommon,它在实现RegionalCodeAppliction所需的功能时要使用RegionalCodeCommon的基础信息,也可能实现RegionalCodeCommon提供的一些接口。

RegionalCodeApplication,负责为用户提供查询服务。这里,还应补充上数据更新服务。它依赖于RegionalCodeCenter和RegionalCodeCommon两个项目。

关系的分析会体现在整个方案的编码过程,时不时的停顿一下,回头看一下,把握根本,明晰思维,很有必要。就算一行代码都没写,象现在。

由于脑袋还是在不停的“想”,我先安静一下,做不大头疼的项目,就是RegionalCodeLibary。

下一篇,RegionalCodeLibary项目的编写,行政区划程序的设计(七)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值