下面这个例子怎样做才算是多层呢?

lettermail 2004-12-08 12:43:11
中间层可以细分为数据实体、数据访问、业务逻辑 , 请问应该怎样分呢

例子:
数据库里有一表:
Result (学生成绩表)
Name result
tom1 55
tom2 62
tom3 65

"中间层 "要做的是: 在 "数据层 "拿出成绩 >60分的记录 返回给 "表现层 "

请问怎样做才算是把中间层划分为数据实体、数据访问、业务逻辑?
...全文
152 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zengjd 2004-12-09
  • 打赏
  • 举报
回复
业务逻辑层:
NameSpace BLL
{
  public String Name;
public Double Result;
class Student
{
IList GetNoPass()
{
DBStudent dbstu = new DBStudent();
return dbstu.GetNoPass();
}
}
}
在表现层上你可以调用业务逻辑层方法取得没有及格的学生名单,并将他们Display.

数据访问层
NameSpace DAL
{
Class DBStudent
{
IList GetNoPass
{
BLL.Student stu;
IList listStudent = new listStudent;
String SQL="SELECT * FROM WHERE result<60";
SqlCommand cmd = new SqlCommand();
cmd .Connection=cnn;//数据库连接。
cmd .SqlText=SQL;
SqlDataReader rdr = cmd.ExecuteReader();
while(rdr.read())
{
stu=new BLL.Student(rdr("Name"),rdr("result")):
listStudent.Add(stu)
}
return listStudent;
}
}
}

你也可以将业务逻辑成分成两层:bll 和Model,其中bll只包含GetNoPass()方法,Model类中有一个StudentInfo类,它只包含学生的基本信息,象MS有一个例子PetShop就是按这种方法。
但是那样做和我上边举的例子的各自的优缺我也一直在权衡!

你也可以见计算是否及格的逻辑放到BLL中,这样DAL层就只负责生成所有的学生的实例,放到链表中返回到BLL层,然后BLL层中的方法循环链表,找出不及格的学生并返回表现层,这样做的好处是DAL层不包含任何业务逻辑,缺点也很明显,就是效率和程序的复杂性。在真正的项目中这种方法是否行得通,也是需要自己去权衡的!

pyp 2004-12-08
  • 打赏
  • 举报
回复
是的。
lettermail 2004-12-08
  • 打赏
  • 举报
回复
沉思中……
如果 对于此网址http://www.services-ha.com/article_view.asp?id=550 所说的例子
( 在此网页的下半部分有一个例子)
请问这个例子是不是把"中层"分为两层“数据访问”及“业务逻辑”两大内容?
pyp 2004-12-08
  • 打赏
  • 举报
回复
业务逻辑就是对数据的处理,这里就是拿出大于60分的成绩,一个系统中可以有多个业务逻辑,比如把大于60分、小于60分、或者性别分类等分别做为业务逻辑放到一起,在处理的时候,根据相应业务进行判断。

数据访问就是对数据库中的数据进行提取处理,这里就相当于从数据库中提取大于60的数据记录。

数据实体就是业务逻辑返回的结果集,结果集最后显示在表现层。

上面只是大概的分析,具体怎么做,没有更详细的资料,无法判断。

over。
xinxx2003 2004-12-08
  • 打赏
  • 举报
回复
晕,还要去学JAVA? 还是顶一下
beyondrobey 2004-12-08
  • 打赏
  • 举报
回复
建议你去学学JAVA就知道了

1,759

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 企业信息化
社区管理员
  • 企业信息化
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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