是什么
关注点指软件的功能或目的。把关注点“分离”,就是将与各个关注点有关的代码集中起来做成独立的模块,与其他代码分离。分离的模块要尽量减少公开的功能数量,与其他模块的关联也要维持在最低的限度。
在设计技法中,有很多模式用于实现关注点分离,其中最具代表性的模式是“模型-视图-控制器”(MVC)。在编程领域,关注点分离的代表技术是面向切面编程。
为什么
代码的修改通常以关注点为单位。因此,将代码按照关注点进行分离有一下好处。
- 各个关注点互相独立,从而缩小了代码的修改范围,使得代码更易于修改
- 修改带来的影响限制在关注点内,因此代码的质量能够保持稳定
- 因为代码的编写是以关注点为单位进行的,所以能够实现并行开发
怎么做
以关注点为单位创建模块,把不同的功能、不相关的功能分开。比如在“模型-视图-控制器”模式下,业务逻辑、用户显示和输入处理互相分离。
另外,如果一个模块在不同前提下有不同的功能,我们就需要分割该模块,让各个功能独立于状态。一般来讲,一个模块不可以拥有多个功能。