基于基本三层如何降低层之间的耦合度
2018-06-18 01:48:54来源:未知 阅读 ()
版权声明:本文为博主原创文章,未经博主允许不得转载。
前言:对于一个项目的实现,往往都是,产品需求分析,产品设计,UI设计,数据库设计,后台编码,前端页面,各种测试,发布产品;
这个产品是我个人利用闲暇时间做着玩,包括网站,以及后台管理系统;额外说一句,前端页面是在网上下的模板,个人对前端不算精通。从产品分析到设计,以及数据库建立还有框架的搭建,我只花了2天时间,当然,这是个小网站,表的设计没有很多只有4-5张;
废话不多说了!
整个产品架构采用6层架构,主要目的是减少每层之间的耦合度以及依赖性,方便以后代码的复用和变动
图中每个箭头的指向代表引用
解释下这6层的各自作用以及实现的功能:
Model层:这里没什么好讲的,主要是利用EntityFramework框架和codingfirst直接生成的各个类以及context,但还得自己加一个类,作为之后调用context入口时的唯一性,也就是再写一个单例模式的类
IDAL层:是对DAL层的抽象,在这里我们定义了每个DAL层的行为规范,这里我们定义了四个,增删改查和分页查询,四个行为规范;为了体现代码质量,尽量避免写重复得代码,我又把这四个行为放到一个IbaseDao<T>,而具体的每个Idal只需继承即可,如图:
DAL层:数据访问层,对于每张表都有的增删改查的功能,抽出来一个泛型BaseDao<T>在此类中实现上述IbaseDao定义的几个行为,而具体的每个DAO类只需要继承ibaseDao<T>,和其对应IDAL接口类
Factory层:是BLL与Dal层进行交互的一个节点,本层采用依据传过来的IDAL接口,通过读取dal程序集,依据idao类型是不是其父类这个特性,找到dao,并返回给bll层;对于直接在BLL层中创建dao相比,耦合度大大的降低依赖性也不是那么重要,对于在后面的维护和复用是不言而喻的;代码下图:
BLL层:说到这个层,其实大家还可以去试一下,多加两个层IBLL,和BLLfactory,其作用和上述的IDAL和factory层大相径庭,作用也是减少BLL和UI层的耦合度和依赖,在原来的三层中,BLL是直接new dal对象调其方法,但在本项目中,是调取Factory层的CreateDAO方法,而且不需要引用dal层,只需引用IDAL,在传过去的类型中我们也只需要把相应的dal的接口idal类型传过去,从而对dal层的依赖减少,代码如下图:
UI层:采用MVC框架搭建,对于数据前后台交互式采用强类型视图,一般是把需要的数据封装到Model中然后再前端操作;
后言:本来不想发这篇博客的,感觉大家都很懂,没必要,但我相信一定还有觉得这是一篇有用的博客的朋友,其实最开心的事,莫过于能帮助到你!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:单元测试与Nunit的基本使用
- C++冒泡排序 (基于函数模板实现) 2020-05-31
- 第五章 继承与派生 2020-04-04
- C++抓图服务 2020-03-31
- c++中的异常处理 2020-03-21
- C++ Primer抄书笔记(二)——变量和基本类型(下) 2020-02-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash