概述
三层结构:
1.表现层(web页面或WinForm窗体等)
2.DAL (数据访问层)
3.BLL (业务层)
多层结构:(没有什么固定的说法)
举一个的例子来说吧:
1.VO (.net中通常叫Model层,java里面叫VO层,就是通常所说得值对象层,每一个数据库中的表对应VO层下面的一个类)
2.DBobject (数据库访问层,最好采用"单态模式设计"即所有的方法都采用静态方法)
3.IDAL (数据访问接口层)
4.DAL (数据访问层)
注:2.3.4也统称数据访问层
这一层也可以用 Hibernate 技术来实现(.net 中叫 "NHibernate" ,java中叫"Hibernate")
5.BLL (业务层)
6.Tools (工具层,也有叫Common通用层的, DBobject 也可整合在这一层当中)
7.表现层
9.WebService层(必要的时候才会去用)
10.Factory(工厂模式层,例如:所有的DAL层的数据访问类都用这个工厂模式来生成,返回类的类型从IDAL层里面取相应的接口类)
当然还可以有 "门面模式" 等等..
以上说法不一定适合每个人的多层设计模式概念,只是个人理解而于,其实还有很多层次都要用到 接口层,不过一般的设计这已经足够了,大部份人都不怎么原意去作接口层包含我自己 .
请问使用三层结构中,Model实体类是用来做什么的,使用实体类有什么好处呢?
回答一:实体类做为数据容器,在层间传递
回答二:实体是用来存放信息的
实体可以分为持久化对象(与数据库对应)和业务对象(包含业务信息对象)
这两种对象之见是可以转换的. (我认为po/vo 对于SOA下的开发已经不是必须的了.我认为有PO就够了,并且可以更好的布局和使用,机于我理解的SOA :( http://blog.csdn.net/Oceanson/archive/2007/05/17/1613879.aspx)
实体有很多好处,我举一个比较偏的例子
你有一个查询控件,包含了许多查询信息.比较bad的作发是在UI层根据用户输入的信息编辑一个sql 直接调DAL层拿数据.
稍微好点的做法在业务层写一个很多参数的方法,把用户输入的信息传递到业务层处理.这样写的缺点是你加一个参数就要改一次接口.当然你可以在c#里用Parameter+object[],或者用2.0中的Collection<T>.但第一种方式业务层很难处理,你的list必须是有规律的.第而种方法最大的缺点是范形不能用object.
我认为最好的方法就是使用实体.你有一个某中query的实体,把所有信息记录进去,传递到业务层处理.
最后
以上就是现实冰棍为你收集整理的三层结构与多层结构的全部内容,希望文章能够帮你解决三层结构与多层结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复