学三层有一些时间了,前期看视频、敲代码,后期查资料,写博客,最近又有陷到博客里的感觉,在总结中成长,这次来一个小的总结吧——我的三层总结。
逻辑:
UI/BLL+DAL/DB,看起来很简单,其实也很简单。
设计原则
用户至上、兼顾简洁
职责机制
UI(提出请求)——BLL(判断是否有能力,有能力)—— UI
UI—— BLL ——DAL (数据源访问,处理加工)——BLL(得到结果返回)——UI
具体流程
DAL获取数据,供UI显示使用
从UI获取用户指令、数据,执行业务逻辑BLL
从UI获取用户指令和数据,通过DAL写入数据源
何时使用
业务逻辑简单,数据存储层没有——不用
业务复杂,数据存储到独立介质,业务脱离UI,数据单独存在——使用
功能“原则”:
Dal只提供基本单一的数据访问,不包含任何业务逻辑处理,不能分割的操作
UI只负责显示、采集用户操作,不包含业务相关逻辑处理
画面、输入的传给业务逻辑层,要数据;基础数据,加工的对象拿来
数据访问层DAL作用:
从数据源加载数据select、先数据源写入数据insert /update、数据源删除数据delete
业务逻辑层BLL
处理业务逻辑,获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给dal处理,处理完成后返回必要数据给UI
Model业务数据模型:
避免互相引用,传输数据,从底层到顶层,顶层到底层
服务方、请求方互不通话,引用Model,但是model不引用、不知道其他层的存在,其只负责负责传输数据
作用
存取、写、删、简单明了
展示特定业务数据、采集用户输入信息和操作、特定数据展现给客户
技术:
ADO.NET+SQL
O/R Mapping框架:对象关系映射,转换成对象模型
访问sql server数据库时LInq to sql:单表映射、自动完成sql语句生成
DAO:数据访问对象
ScoreDAO和UserDAO完成登录操作,userdao验证信息、scoredao增加积分
Assembly程序集
Dal 、bll、UI不同程序集中,
各个层间引用关系:UI——bll——dal
BLL引用DAL/Model UI引用BLL/Model 层层引用,中介
Dal所在程序集不引用bll、UI
Bll需要引用dal
UI直接引用bll、可能间接引用dal