三层架构下共通功能的设计

hnlnbukn 2013-04-10 10:48:55
这两天遇到的一个需求。项目本身是三层架构。需求是在从数据库读取超过50条数据的时候,新开一个线程在后台读取数据,然后添加到DataGridView控件进行显示。

这个应该怎么设计才能更好的符合三层架构,并且可以方便的进行重用呢?
...全文
178 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2013-04-15
  • 打赏
  • 举报
回复
1.别管人家怎么取数据,这个你管不到滴,你设计一个类写个virtual方法,让后面的自己overide就ok(或者你委托出去,让调用的人自己去决定也可以) 2.别管人家怎么绑定datagridview滴,这不管你的事情,UI数据千奇百怪,你就想管也管不来,限制一堆事情,到头来人家说你少提供一个字段,你又抓脑袋了 这个东西这样一说你就基本明白了,其实这就是那帮人号称的MVVM,当然如果你找mvvm的资料大部分是wpf滴,但实际上mvvm在winform里一样可以用 自己去看 ObservableCollection<T> 写成公用类开线程获取数据,返回ObservableCollection<T>问题不大,然后线程里触发properyChanged问题也不大,线程里同步上下文信息问题也不大 一个例子可以看我去年回复的一个帖子 http://bbs.csdn.net/topics/390062975 这里的test稍微提取一下就可以写成一个公用类 其实看这个例子,你就明白了。啥叫复用,复用的基本思想是别管那些你管不了地,人家用啥子绑定和你木关系,你只要提供数据,提供消息通知对方我数据更新了你自己更新ui去,然后别管人家下面怎么取数据滴,这个你管不了,谁知道你要什么东西,所以virtual也好,委托也罢,让他们自己搞。谁的活谁来,我TM怎么知道你要从哪个库取哪个表
hnlnbukn 2013-04-15
  • 打赏
  • 举报
回复
晕。。。我意思是说,,做一个共通功能,专门负责开辟新线程来读取后续数据,,跟别的线程没关系啊 因为需要读取数据的地方比较多并且SQL都各不相同,,但是共同的地方都是需要开辟新线程来分次读取数据,,就是想知道该怎么去设计才能将这个功能封装的更好,,能让读取数据的地方更方便的调用。 就因为不太明白设计,,才会去往这方面去学习啊。不然我每个地方复制一份不就完事了。
wanghui0380 2013-04-15
  • 打赏
  • 举报
回复
哎,博客园害人啊,什么什么就不能复用了 我问你DataGridView一个通用控件,如何就不能复用了? 线程读数据又如何不能复用了,难道读数据这活,线程这活除了你别人都不能用? 数据库读取超过50条数据,和这个又怎么不能复用了?从A库读50条,和从B库读100条,难道不是一个代码? 哎,我不知道现在的程序员都在博客园上看了些啥子,昨天一帖子,什么都木有就喊内存泄露。你这一帖子啥都木开始设计就喊复用
hnlnbukn 2013-04-15
  • 打赏
  • 举报
回复
呃。。我想问得是该如何设计比较方便重用,,因为各个读取数据的地方SQL语句都不一样。 目前我做出来的是各个读取的地方自己将读取完整数据的SQL拼出来,然后共通功能负责分段查找。但是必须得在共通功能里面去添加各自页面单独的参数初始化,感觉作为一个共通来说封装的不够。所以想问问应该如何设计这块功能呢
游戏人间 2013-04-12
  • 打赏
  • 举报
回复
写到界面就行了。

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧