ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 分层架构 分层架构(layered architecture)是常见的软件架构,也是事实上的标准架构,如果说你不知道用什么架构,那么最简单的就是使用这种架构方式。 这种架构将软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其他层的具体细节,层和层之间通过接口通信。 虽然没有明确约定,软件一定要分成多少层,但是四层的结构是最常见的了。 ![四层架构](https://box.kancloud.cn/aed0ef3893476aa4f8fc7c57be63a181_750x561.png) > * 表现层(Presentation Layer):用户界面,负责和用户互动 > * 业务层(Bussiness):实现业务逻辑 > * 持久层(Persistence):提供数据,SQL语句就放在这一层 > * 数据层(Database):保存数据 有的软件在逻辑层和持久层之间,增加了一个服务层(Service),提供不同业务逻辑需要的一些通用接口。 用户的请求将以此通过这四层的处理,不能跳过其中的任何一层。 ![](https://box.kancloud.cn/c2baf8516481ce079bd238d4d2322b78_750x511.png) 优点 > * 结构简单,容易理解和开发 > * 不同技能的程序员可以分工,负责不同的层,天然适合大多数软件公司的组织架构 > * 每一层都可以独立测试,其它层的接口通过模拟解决 缺点 > * 一旦换件发生变化,需要代码调整或增加功能的时候,通常比较麻烦和费时 > * 部署比较麻烦,即使只修改一个小地方,往往需要整改软件重新部署,不容易做持续发布 > * 软件升级时,可能需要整改服务暂停 > * 扩展性差。用户请求大量增加的时候,必须依次扩展每一层,由于每一层内部是耦合的,扩展会很困难