例如在描述这样一个实例:图书管系统,一个同学查看他已经借阅的书。UML大概也就是样:在代码实现的时候:按正常是:类Stuent,有一个存放类book的bookList.在数据库中提取出书的相关数据后,构造成book对像然后加入bookList.为了让书本的数据能在GridView中显示,还要增加一个转换成GridView数据源的函数。大家觉得有这个必要吗,因为取出的数据是要到GridView中显示的,直接在Student类中放一个dataset来存放book数据不是很直接吗!但是这样做,感觉有些不伦不类,呵呵,谁让数据库不是面向对象呢。用对象图来表示:
大家在做开发的时候是怎么做的呢?请教了。
大家在做开发的时候是怎么做的呢?请教了。
建议楼主看看这个里面的讨论的文章吧。个人都有个人的看法,不要到时候你自己都茫然了,每种方法都有优劣的。
还有这个,博客园前段时间针对这个进行过很激烈的讨论,楼主请多品味下,然后再来想想自己该怎么做
用OO开发 使用与 业务逻辑比较复杂的,
要不让 直接UI+数据源 就OK了复杂的业务关系 直接用DATASET 能表示出来么?
book的所有字段以及保存作者信息表的所有字段.(不是在所有情况下都要选择出外键的所有字段)假设作者信息表的字段有 author age,那么我的book类的属性会包括编号,书名,author,age假设我使用的是SqlDataReader来读取数据,我会在循环读取出,用GetEntry(sqldatareader sdr)来返回一个
book类,function GetEntry(sqldatareader sdr)
{
book _book=new book();
_book.author=sdr.getstring(0) / 假设
return _book;
}在循环中,将返回的book加入List<book>中.独立出来的GetEntry方法,可以在根据不同的查询条件下都可以使用.如在上面的查询条件的基础上加上where author=@author,
这个方法根本不需要修改.如果你仅需要返回一个book实体类,也挺方便.而且以后如果新增字段时,除了新增一个属性外,再添加几处sql中的新增字段,则全部修改完成.应该说算是比较方便的.一家之言.仅供参考.