一.简介

主要分为:界面层(User Interface layer),业务逻辑层(Business Logic Layer),数据访问层(Data access layer)

1.作用

界面层(UI) 提供界面,用于与用户交互 包含窗体和自定义控件
业务逻辑层(BLL) 处理业务逻辑,用于UI层调用  主要负责对数据层的操作
数据访问层(DAL) 访问数据库的类,用于BLL层调用  数据库,二进制文件,文本文档,XML文档等

另外加上,实体层Models,用于抽象出实体类

分层目的:高内聚低耦合

例:需要更换界面情况下,直接更换UI层就可以了

2.关系图

二.搭建

1.创建空白解决方案

2.创建BLL

3.创建DAL层

4.创建Models

5.创建UI层

6.关联各层之间的关系

关系图:

(1)UI引用BLL和Models

(2)BLL引用DAL和Models

(3)DAL引用Models

7.将UI项目设置为启动项

三.规则

⒈ 最关键的,UI层只能作为一个外壳,不能包含任何业务逻辑(BizLogic)的处理过程
⒉ 设计时应该从BLL出发,而不是UI出发. BLL层在API上应该实现所有BizLogic,以面向对象的方式
⒊ 不管数据层是一个简单的SqlHelper也好,还是带有Mapping过的Classes也好,应该在一定的抽象程度上做到系统无关
⒋ 不管使用COM+(Enterprise Service),还是Remoting,还是WebService之类的远程对象技术,不管部署的时候是不是真的分别部署到不同的服务器上,最起码在设计的时候要做这样的考虑,更远的,还得考虑多台服务器通过负载均衡作集群
 
参考:
https://baike.baidu.com/item/%E4%B8%89%E5%B1%82%E6%9E%B6%E6%9E%84/11031448?fr=aladdin

最新文章

  1. Linux下安装Java环境配置步骤详述
  2. mybatis一个怪异的问题: Invalid bound statement not found
  3. 平面直接坐标系线段相交问题(小Q(钟神)的问题)
  4. 修改Apache的最大连接数
  5. HashMap和Hashtable及HashSet的区别
  6. c语言指针用法
  7. DedeCms autoindex和itemindex使用介绍
  8. storm高级原语-Transactional topology
  9. Windows多线程同步系列之三-----事件对象
  10. SharePoint Framework 基于团队的开发(三)
  11. Moco使用简单指导
  12. SuperMap空间数据处理与制图操作短视频汇总
  13. jvm系列五、jvm垃圾回收机制、jvm各种参数及调优
  14. Makefile 中 ifeq ifneq 等用法
  15. ALGO-17_蓝桥杯_算法训练_乘积最大(DP)
  16. http etag
  17. node.js 递归创建多级目录
  18. xcode6 新建项目真机调试无法全屏
  19. myeclipse 10安装之后该做些什么?
  20. Spoken English Practice(I really hate to give her up, oh ,I know, you should take her.)

热门文章

  1. ubuntu为什么没有/etc/inittab文件? 深究ubuntu的启动流程分析
  2. PHP生成唯一固定长度邀请码
  3. php根据年月获取当月天数。
  4. mysql设计与开发
  5. jQuery解析JSON出现SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
  6. oracle ---中文乱码问题
  7. nodejs中的util.inspect.js
  8. Python Twisted系列教程15:测试诗歌
  9. HTTP之报文
  10. windows命令行 查询/kill 进程