最近写了个程序
自己感觉好象是为了三层而三层
dal:实现数据库的操作
bll:实例化dal,然后返回dal的方法。 public PhotoBll
{
photodal = new PhotoDAL;
}
public List<PhotoInfo> GetPhoto()
{
return photodal.GetPhoto();
}UI:调用BLL的方法看了petshop的例子,还有工厂模式,接口,反射,可是看着有点不明白!
自己该怎么提高?
各位前辈指点迷津下!
自己感觉好象是为了三层而三层
dal:实现数据库的操作
bll:实例化dal,然后返回dal的方法。 public PhotoBll
{
photodal = new PhotoDAL;
}
public List<PhotoInfo> GetPhoto()
{
return photodal.GetPhoto();
}UI:调用BLL的方法看了petshop的例子,还有工厂模式,接口,反射,可是看着有点不明白!
自己该怎么提高?
各位前辈指点迷津下!
解决方案 »
- Jw player视频播放器找不到中文文件
- asp.net登陆程序中中,我要在前台验证格式,后台验证密码,流程是怎样的
- 怎么防止页面滚动?
- 求一网站.先前在网上见过有一个社区做得比较cool,白天时没有灯开.晚上时有灯开.里面的房子做到好像真的一样.不知是否用flash+3d来实现
- 用JS怎么获取RadioButtonList的值?
- 软件公司.NET面试后,部分题在此求解,给出我的四分之一分.
- 求<ASP.Net Solutions-23 Case Studies: Best Practices for Developers>源码
- 请教:关于负载均衡时,如何将文件上传到固定服务器的问题?
- DataList里加上DataGrid的问题
- 关于SouceSafe管理的问题
- .中文字环绕图片问题
- GridView 多字段排序
有什么用呢?
最近看着petshop,然后在看了一些petshop帮助文档,可是还是不明白!有点纠结!
1 分层的目的有一条必须实现解耦
你的 BLL 是直接通过DAL层类的实例访问DAl 没有实现解耦 比如说要 增加一个操作(验证是否存在相同的用户名) 这样你要 从底层一直写到 ui层。2 你应该设想 你的 DAL能更换数据库类型么? 3 其实 BLL 和 DAL 中间是要加入一个适配器层的 这个可以通过 设计 IDAL IBLL实现
有DAL,就把数据处理逻辑写在BLL中来维护Model,实现业务实体。
IDAL,实现接口。
DALFactory,返回程序集的指定类的实例。
http://topic.csdn.net/u/20090525/19/5572dc95-4ad9-48b0-ba91-9bca37ad0ebf.html
PetShop的工厂模式、反射和接口,都是为了层之间的松耦合和可替换而准备的,如果你的数据库和持久化框架不会变动,这些东东可以忽略。
三层可以大概分为:
表现层(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标签,在前台显示给界面
不懂的话只能先照抄 自己摸索出错会比较多
现在如果要改动个地方,就要改dal,bll,ui,好麻烦的说!
ui层 用来和客户交互 调用bll层的业务方法
bll层 用来处理业务逻辑 什么是业务逻辑 就好比一个登录功能 就属于一个业务 放在bll层中
dal层 用来处理和数据库之间的操作 例如增加 删除 修改这种单独的功能。楼主现在觉得bll层就是实例化dal层 然后调用方法 我觉得是因为还没有复杂的业务逻辑 就拿一个简单的登录来说 就不是单独的实例化一个对象 调用一个方法就可以解决的了。 最起码需要判断用户名密码是否正确。以及其他的判断,才能完成一个登录功能。像楼主其他的问题,例如工厂模式、接口、反射,我觉得这些首先不是要看是怎么做的,而是要看是用来做什么的,能够解决什么样的问题。到真正遇到问题的时候可以想到用什么来解决。
自己写的操作数据库的方法放在BLL层里
但最后觉得有些勉强,还是Pass掉了,这东西不能强求
http://topic.csdn.net/u/20100514/06/90a58e04-6d59-44bf-92b5-57cdfb7b5b9b.html