这堆东西该如何重用?

 

1、问题的提出

我在做一个自己用的小软件用来管理和浏览树状信息。左侧是一个或多个树控件,右侧是用来显示左侧树控件上当前选中节点的具体信息的子窗体(一个usercontrol)及listview和其他辅助的treeview。树节点的相关信息是存在ACCESS里的,所以可以理解上述所有控件是“数据绑定”的(注意,并不是通常我们所说的那种数据绑定控件),当在其中任意一个控件对树节点的信息做了改动,这个改动就会反映在其他控件上,也会更新到数据库里。

之后,我发现我有若干个小应用都需要这个小软件。于是,我把这一组用来对树状信息进行浏览和管理的代码写成一套类,然后每次开发一个新的小应用的时候,我就把类模块拷过来,再针对特定的应用做相应的变动。这样做也算是一种重用了,“拷贝粘贴型”的重用。麻烦的是,每次我对类有了改动的时候,我需要在所有拷贝过它的地方都做这个改动。这不仅麻烦,有时还会带来八哥。

有没有什么更好的重用方法呢

2、想要怎样重用?

在进一步讨论之前,得说清楚想怎么重用(我试着列出几条如下,但其实我不大想得清楚):

首先,想重用的是用这一堆控件协同工作来展示树状数据代码和界面

其次,虽然每个需要用这套东西的应用都有相似之处,但也各自有区别。它们在界面上可能也会各自不同,有的控件多几个、有的控件少几个。但总的来说,这个同步显示和更新树状信息的功能是都需要的。

再次,希望有个属性页之类的东西,可以在设计模式下设置属性。

3、解决思路

一种想法是:把这整体做成一个控件,把它往窗体上一拖,它就自动生成一个小型的应用。在属性页里设置一些属性后,它就可以展示指定树表里的信息。但是,这就要求这个控件通用性非常好,要考虑到各种不同应用的细微差别,允许用户(二次开发的程序员)进行定制,要抽象出合适的接口。我觉得现在脑子里还抽象不到这种程度,许多需求不做是不能明白的。

另外一种想法是:在设计视图下用户根据自己的想法拖放各种标准控件到窗体上,然后告诉我的“这堆东西”谁是谁,之后这堆东西就可以在自己内部的类里控制这些控件,当用户在运行时通过这些控件改动数据的时候,这堆东西也会得到事件通知,负责数据更新的相关业务逻辑。这样的话,这堆东西也许应该是个不带界面但是带属性页的ActiveX控件。

注:这种想法里强调有属性页的目的,是为了让开发者(其实就是我自己了)不用写代码就可以告诉“那堆东西”谁是谁以及从哪里取数据。

我倾向于第二种想法。比如我在应用里放一个这堆东西的实例AAA,一通设置后,运行程序,它就可以从指定的表里取出数据并展示还支持增删改。假如我希望用到AAA里用来控制树控件的成员对象变量TTT的方法MMM,那我就在程序里写Call AAA.TTT.MMM。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值