为了三层而三层

tiandiyuzhou1 2010-06-27 10:06:14
最近写了个程序
自己感觉好象是为了三层而三层
dal:实现数据库的操作
bll:实例化dal,然后返回dal的方法。

public PhotoBll
{
photodal = new PhotoDAL;
}
public List<PhotoInfo> GetPhoto()
{
return photodal.GetPhoto();
}

UI:调用BLL的方法

看了petshop的例子,还有工厂模式,接口,反射,可是看着有点不明白!
自己该怎么提高?
各位前辈指点迷津下!
...全文
555 54 打赏 收藏 转发到动态 举报
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
jieyan1227 2010-06-29
  • 打赏
  • 举报
回复
学习一个小时
beijingbeerman 2010-06-29
  • 打赏
  • 举报
回复
看看这个帖子,不要为了00而00
http://topic.csdn.net/u/20100514/06/90a58e04-6d59-44bf-92b5-57cdfb7b5b9b.html
msnadair 2010-06-29
  • 打赏
  • 举报
回复
如果你项目里用不上,就不需要为用三层而三层了.
但可以先了解一下,学习一下概念!
xiangzhanyou 2010-06-29
  • 打赏
  • 举报
回复
来学习!!!
g505149841 2010-06-29
  • 打赏
  • 举报
回复
学习了。。。
god_is_pig 2010-06-29
  • 打赏
  • 举报
回复
我之前学这个三层的时候,也很头大!
后来,突然就恍然大悟了!抽象工厂设计模式都用进去了!只要你思路正确了,就并不难!

我的经验是:思路很重要,因为程序的执行是按顺序的,每个层都设置断点调试,留意数据的变化,一步一步走!别着急!

你不要把三层看作是很抽象的东西,形象的比喻就是:
一张很乱的办公桌,很杂乱[在编码中我们就说,数据访问和页面控件都放一起,很杂乱]
分类摆放好这些东西,下次容易找[在编码中我们就说,用三层结构把他们分开,以便修改和扩展]

其实,本质上是没什么区别,因为用的语法几乎都一样,创建方法啊、数据访问啊、调用啊!也就多了设计模式之类的!
csdliangzai 2010-06-29
  • 打赏
  • 举报
回复
三层不错~~~~~~··
Cool_xiaocao 2010-06-28
  • 打赏
  • 举报
回复
学习了三层感到很方便,久了,你就变成为了三层而三层。其实一些小的项目根本可以不用到三层。我们学习三层就掌握它的思想,了解它的思路,从而更好地去维护网站。
三层可以大概分为:
表现层(Web),用途:在ASP.NET中,该层包括aspx页面、用户控制、服务器控制以及某些与安全相关的类和对象。对BLL层的调用
业务逻辑层(BLL),用途:对DAL层的各种方法的调用
数据访问层(DAL),用途:数据库的连接,数据的操作(增加、删除、修改、查询)

各层间的访问过程
1、传入值,将值进行类型转换(为整型)。

2、创建BLL层的content.cs对象c,通过对象c访问BLL层的方法GetContentInfo(ID)调用BLL层。

3、BLL层方法GetContentInfo(ID)中取得数据访问层 SQLServerDAL的实例,实例化IDAL层的接口对象dal,这个对象是由工厂层DALFactory创建的,然后返回IDAL层传入值所查找的内容的方法dal.GetContentInfo(id)。

4、数据工厂通过web.config配置文件中给定的webdal字串访问SQLServerDAL层,返回一个完整的调用SQLServerDAL层的路径给 BLL层。

5、到此要调用SQLServerDAL层,SQLServerDAL层完成赋值Model层的对象值为空,给定一个参数,调用SQLServerDAL层的SqlHelper的ExecuteReader方法,读出每个字段的数据赋值给以定义为空的Model层的对象。

6、SqlHelper执行sql命令,返回一个指定连接的数据库记录集,在这里需要引用参数类型,提供为打开连接命令执行做好准备PrepareCommand。

7、返回Model层把查询得到的一行记录值赋值给SQLServerDAL层的引入的Model层的对象ci,然后把这个对象返回给BLL。

8、回到Web层的BLL层的方法调用,把得到的对象值赋值给Lable标签,在前台显示给界面
幻想的天涯 2010-06-28
  • 打赏
  • 举报
回复
关键是实践,多看些例子,多动手!多问问!顶,学习!
yuxh81 2010-06-28
  • 打赏
  • 举报
回复
三层架构和设计模式是两码事,可以分开而不要搅在一起

说实话,我还没用过设计模式,有几个项目本来已经用了
但最后觉得有些勉强,还是Pass掉了,这东西不能强求
夺命胖子 2010-06-28
  • 打赏
  • 举报
回复
又来了... 月经贴
bourbon1795 2010-06-28
  • 打赏
  • 举报
回复
为更简单的维护而三层
mayanly 2010-06-28
  • 打赏
  • 举报
回复
我很菜,来看看大家都在怎么用。
pxh360395296 2010-06-28
  • 打赏
  • 举报
回复
写三层,我DAL层从来不动
自己写的操作数据库的方法放在BLL层里
zhubo006 2010-06-28
  • 打赏
  • 举报
回复
小公司用三层必死无疑!!!
gzamao 2010-06-28
  • 打赏
  • 举报
回复
这个三层啊,最好读一读我的云思想:http://topic.csdn.net/u/20100531/09/95f5b40f-55de-42d4-86b8-f3149e2ada97.html 读完之后,也许大家就不再觉得三层是个东西了。
Ghost_Khz 2010-06-28
  • 打赏
  • 举报
回复
这就好比, 独孤求败的无招胜有招,张三丰的太极拳忘了最好。 。 把三层的思想印到骨子里去了,然后信手拈来。 。。。这就是所谓的境界。 。。。
xmantlb 2010-06-28
  • 打赏
  • 举报
回复
我觉得三层首先要分清楚三层的作用
ui层 用来和客户交互 调用bll层的业务方法
bll层 用来处理业务逻辑 什么是业务逻辑 就好比一个登录功能 就属于一个业务 放在bll层中
dal层 用来处理和数据库之间的操作 例如增加 删除 修改这种单独的功能。

楼主现在觉得bll层就是实例化dal层 然后调用方法 我觉得是因为还没有复杂的业务逻辑 就拿一个简单的登录来说 就不是单独的实例化一个对象 调用一个方法就可以解决的了。 最起码需要判断用户名密码是否正确。以及其他的判断,才能完成一个登录功能。

像楼主其他的问题,例如工厂模式、接口、反射,我觉得这些首先不是要看是怎么做的,而是要看是用来做什么的,能够解决什么样的问题。到真正遇到问题的时候可以想到用什么来解决。
vip2ne1 2010-06-28
  • 打赏
  • 举报
回复
额 我现在就学三层捏 迷糊迷糊的
chen_ya_ping 2010-06-28
  • 打赏
  • 举报
回复
下载一个Petshop 4.0看看。看看它的源代码文件
加载更多回复(33)

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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