关于三层架构的理解

前段时间学习三层架构,有些东西想不通,就每天上网查资料、看CSDN,有时候好不容易找到了理论依据,过几天突然又被其他的理论给推翻了。现在感觉又有了更有力的理论依据,突然不知道以前的理解是咋想的了。以前老是纠结于在数据访问层放入复杂查询,如多表查询、条件查询等是否会泄露业务层的逻辑。于是在网上找寻资料,百思不得其解,总觉得将复杂查询放入数据访问层违背了面向对象的思想,觉得多表查询是参与了多个实体的操作。终于在今天对三层架构有了更好的理解。

在此记录下我理解的的三层架构设计方式。首先在进行系统分析的时候,要经过反复研究,抽象出基本实体,然后再根据这几个实体生成数据表,想当然的做法是将实体与数据表一一对应,这种方法对面向对象的系统来说是毫无影响的。但是这是有被与基于数据库的存储理论,数据存储要求数据表尽量简洁,如果按照实体与数据表一一对应的话,那样会存在很多的冗余数据。所以将实体转化成数据表的过程需要将实体分割。设计完成实体,我们就可以开始设计数据访问层了,想了一下,以前之所以混乱的原因可能是没有理解数据访问层的作用,数据访问层的作用就是生产出需要的实体,至于方法的话可以通过SQL实现也可以通过linq实现,只要达到生产出所需要的实体或者实体集合就可以了。弄清了数据层的作用,对业务层的理解也就简单多了,业务层的作用就是讲数据层产生的对象进行组装,达到想要的功能,就如同将汽车车间生产出来的零件组装成一套系统,可能是一套动力系统。业务层做完就是讲做好的功能模块传递给视图层,视图层再将这些功能系统组装起来,做成完整品,就如同将组装成一辆车。


你可能感兴趣的:(关于三层架构的理解)