最近在项目重构过程中,发现项目比较乱,项目中的类文件遍及了整个项目文件夹中,为此,我觉得有必要把它们整理一下,我的作法是:

详细划分:

BLL层:根据业务或者领域进行划分,如用户业务,财务业务,产品业务,其它业务等等。

DAL层:根据表模块进行划分,我们在设计表时会根据功能为表加前缀,如User_XXX,Order_XXX,Product_XXX等等,所以,在DAL层对这些类文件进行最原始的功能划分,它可能有用户模块,公用模块,订单模块,产品模块,后台模块等等。

如果你要划分,需要具备的条件:

BLL层:一个业务领域专家,它需要对业务非常了解,经常它可能是项目经理人

DAL层:一个底层架构师,它需要对数据表结构非常了解

调用之后,整个项目非常干净,结构清晰:

BLL层如图:

DAL层如图:

事实上传统分层架构设计存在着一些问题,随着软件技术的发展,软件设计从以往的N-layer也再看DDD架构发展,并且我相信,以后的软件设计中DDD必然会把传统架构取代,DDD是什么,可以看一下我的这篇文章,下图是微软NAppLayer项目的架构图,它使用了DDD架构思想。

非常感谢您的阅读!

转载于:https://www.cnblogs.com/lori/archive/2013/03/05/2944070.html

基础才是重中之重~如何整理BLL与DAL层的文件相关推荐

  1. 基础才是重中之重~再说面向接口的编程

    回到目录 之前在我的文章中有对接口进行过讲解,但感觉讲的还是不够清晰,不够利针见血,这次我把面向接口的编程里,自认为比较核心的两点说一下: 接口详细介绍请看我的这篇文章 基础才是重中之重~为什么C#有 ...

  2. 基础才是重中之重~通过人类的生活来学习Delegate

    一个人(people),在他60岁之后,就宣布进入晚年了,在这个期间要多注意身体,多体检. namespace NET基础才是重中之重{/// <summary>/// 人类/// < ...

  3. 基础才是重中之重~类是怎么执行的

    回到目录 对于一个程序员来说,有必要知道一个概念的同时也解它的执行过程,这样对于写出更好更安全的程序是有帮助的. 大牛们不是一天就成为大牛的,而是经过一步一步的实践,不断的知识的积累才成为大牛的,呵呵 ...

  4. 基础才是重中之重~方法override详解

    回到 目录 之所以写这篇文章,完全是因为这次代码审核,这次代码审核过程当中,出现了很多我认为基础知识不够扎实的问题,所以,打算把它们记录下来,共大家分享. 方法的override,即方法的覆写或者重写 ...

  5. 基础才是重中之重~何为原子化操作

    占占定义: 原子化操作,操作原子化,这在软件开发中经常被听到,那到底什么是操作原子化呢,其实从字面上不难理解,原子化就是一体化,整体化,原子化操作就是将多个操作组合在一起,要么这个组合一起发生,要么一 ...

  6. 第二十二回  基础才是重中之重~ThreadStatic静态字段在每个线程里的唯一性

    static修饰符我们不会陌生,它代表静态,可以修饰你的类,方法,字段和属性等等,今天主要说一个为静态字段加ThreadStatic特性会给程序代来什么样的变化.静态字段static field,我更 ...

  7. 基础才是重中之重~DictionaryK,V里V的设计决定的性能

    回到目录 字典对象Dictionary<K,V>我们经常会用到,而在大数据环境下,字典使用不当可能引起性能问题,严重的可能引起内在的溢出! 字典的值建议为简单类型,反正使用Tuple< ...

  8. 基础才是重中之重~用好configSections让配置信息更规范

    对于小型项目来说,配置信息可以通过appSettings进行配置,而如果配置信息太多,appSettings显得有些乱,而且在开发人员调用时,也不够友好,节点名称很容易写错,这时,我们有几种解决方案 ...

  9. 基础才是重中之重~.net中的显式事务与隐式事务

    回到目录 .net中的事务可以分为显式的和稳式的,显式的就是说需要我们手动去指定事务的提交和回滚,而稳式的是.net帮助我们进行管理的,当你的事务代码段没有发生异常时,它会帮助我们进行提交,反之,进行 ...

最新文章

  1. 皮一皮:一样的燕子,不一样的窝...
  2. win10电脑黑屏只有鼠标箭头_win7开机黑屏只有鼠标怎么办,我来教你解决
  3. 一篇教你xftp连接阿里云轻量级应用服务器。超级详细,避免踩坑
  4. js中的cookie
  5. Java中udp/tcp的发送和接收
  6. ~~堆优化版dijkstra
  7. USB移动硬盘使用中的怪现象
  8. java多线程的同步控制_Java多线程并发控制工具信号量Semaphore,实现原理及案例...
  9. 学习pytorch: 深度学习入门建议
  10. Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程
  11. html静态页面留言板,html静态留言板
  12. ElasticSearch安装
  13. 微信支付商户号和企业付款到零钱开通方法
  14. pantompkins matlab,Matlab对Python的findpeaks算法
  15. Sicily 1031. Campus
  16. Web:flex模拟移动商城首页页面布局/grid布局的相关属性
  17. 2021年N1叉车司机考试题库及N1叉车司机模拟考试
  18. 英美团队发现神秘信号:金星上可能存在生命?
  19. 软件测试(四)--提交一个标准的BUG应该包含的项
  20. c语言的酒店管理系统源码供参考学习

热门文章

  1. 《2018中国AI计算力发展报告》发布!北京算力仅排第二
  2. ubuntu 下 lighttpd 支持 mod_cgi 的配置文件
  3. python对ip地址排序、对列表进行去重
  4. Python任务调度模块APScheduler
  5. PostgreSQL 最佳实践 - 在线增量备份与任意时间点恢复
  6. Android studio 升级指定dradle
  7. ajaxpro.2.dll使用【转帖】
  8. Puppet的安装部署
  9. 提高开发效率,eclipse的常用快捷键、旁门左道、系统错误小贴士
  10. mac terminal ssh client shuttle 免输密码