假设你去寄一个快递,你只要拿上东西,填上一份收货地址和收货人,然后交个快递公司,最后收货人从快递公司的手里取到快递。这个过程可以分为相互独立的三个部分来完成,分别是寄件人、快递公司、收件人。作为寄件人,你可以选择不同的快递公司,但是可以达到同样的效果。至于运输过程,用什么交通工具全有快递公司处理。而只要带上收件人的身份证和电话号码就可以作为收件人。所以,三个部分是相互独立的,其中一部分的跟换不影响其余两部分的进行。
那么三层架构和以上的快递流程相似,它将整个软件过程分为三个层次:表现层、业务逻辑层、数据访问层。以应对软件修改对与之联系的类的影响。
表现层:位于系统最外层,离用户最近。用于显示或者输入用户需要的数据,只提供软件系统与用户交互的借口界面。
业务逻辑层:位于表现层和数据访问层之间,专门负责处理用户,或者数据访问层提供的数据。该层包括一些对“商业逻辑”的描述。该层是另外两层通信的桥梁,负责数据处理和传递。
数据访问层:仅实现对数据的保存或者读取操作。包括访问数据库系统、二进制文件、文本文件或者XML文档。
三层架构中各个层次的分工明确:1、表现层只负责用户输入的数据,或者来自于业务逻辑层的数据显示给用户。本层的开发需要掌握用户界面设计规范和界面美观。切忌在表层中写与业务逻辑相关的代码!2、业务逻辑层只负责对数据的处理操作 。例如,验证数据的数据,组织数据访问层提供的数据等。3、数据访问层,只和数据库连接获得业务逻辑层需要的数据。
三层架构的优点:
把软件开发任务分解为独立的部分,有利于团队合作的开发。同时三层架构的软件适应性较强,一旦有需求变更,或者某一层的代码修改,对其他两部分的影响很小。因此代码的复用性比较好。
三层架构的缺点:
代码量相比之下比较多,执行速度较慢。因此三层架构的软件开发模式不适合于对执行速度要求高的系统。