首页 > 代码库 > 三层架构(二)——为什么要用三层架构?
三层架构(二)——为什么要用三层架构?
二、为什么要用三层架构?
1、分析
层次结构在现实社会中随处可见。记得有个笑话讲有个村长得意的向他的老婆吹牛:“全中国比我官大的只有四个人,乡长、县长、省长和国务院总理”,这个笑话体现了真实社会的分层现象,社会人群会分层,公司管理人员结构也会分层,
楼房是分层的,甚至做包子的笼屉也是分层的,虽然分层的目的各有不同,但都是为了解决某一问题而产生的,所以分层架构是为了解决某一问题而产生的解决方案。
社会分工的优势:让适合的人做自己最擅长的事情,缩短劳动时间,提高劳动效率。人尽其才,物尽其用。软件开发也一样,开发小项目,也许分层与不分层也许看不出多大的差别来,分层可能显得更加啰嗦,但是当开发一个复杂的项目时,分层的优势就显示出来了。
举个例子:我们重构机房收费系统,需要进行数据库的访问,在不分层的情况下,就会出现大量重复的代码,无非就是数据库的增、删、改、查,这些重复的代码可以适用于多个模块,就是字段名和数量不一样。光敲这些重复的代码就得花去我们不少的时间,何况我们的机房收费系统还只是一个不大的项目。如果是一个较大的项目呢?
每一个事物有优点必有缺点,分层架构的缺点主要有以下两点:
1)、分层也一样,如果不分层,很多业务可以直接访问数据库,获得数据,而现在却必须通过中间层来访问,从而降低了系统运行性能。
2)、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
不过分层架构的利大于弊。
2、结束语
在软件体系架构中,分层式结构是比较容易懂的也是最常见的一个结构,而三层结构又是分层结构里面最常见的一种分层方式,也是Microsoft推荐的分层式结构。分层式结构还有其他模式例如MVC,了解和熟悉三层架构之后,学习其他架构会显得比较容易,让我们先从最容易理解的学起。