关注点分离(SoC) 是指把系统按不同的“关注点”(职责、变化原因)拆成相对独立的部分,每个部分只处理一件事,从而降低复杂度——人脑一次能处理的复杂度有限,分开才能各自理解、各自演进。
常见的实现机制:
- 分层:表现层 / 业务层 / 数据访问层,各层只与相邻层交互。
- 模块化:按业务边界划分模块,靠明确接口通信,隐藏内部实现。
- MVC 等模式:把数据、展示、交互逻辑分离。
- AOP(面向切面):把日志、事务、安全这类横切关注点从业务代码中剥离,集中声明。
- 微服务 / 前后端分离:把 SoC 推到部署与团队边界层面。
易错点:分离不是越细越好——过度切分会产生大量胶水代码和跳转成本;划分的依据应是“变化原因”而非技术种类,否则一次业务改动仍要穿透所有层。追问方向:SoC 与单一职责原则、高内聚低耦合之间的谱系关系,以及它如何在架构(如整洁架构)中落地。