
2.1
模块化设计的要点
|
21
何帮助我们在组件级别和规模上管理复杂性呢?
2.1
模块化设计的要点
通过采用有详细的文档记录、有清晰的划分且经过充分测试的
API
的小模
块,模块化设计解决了程序设计中的复杂性问题。定义清晰的
API
会降低
模块间互相连接时的复杂性,而小模块则使程序更易于理解和使用。
2.1.1
单一职责原则
单一职责原则(
Single Responsibility Principle
,
SRP
)可能是公认的最成
功的应用程序模块化设计原则。当组件有一个唯一的精确目标时,就称它
们遵循
SRP
。
遵循
SRP
的模块不一定必须导出一个函数作为该模块的
API
。只要从组件
中导出的方法和属性是相互关联的,我们就不会破坏
SRP
。
在考虑
SRP
时,很重要的一点是要弄清楚其中的“
R
(职责)”是什么。例如,
我们有一个组件,用于通过简单邮件传输协议(
SMTP
)发送邮件。选择使
用
SMTP
发送邮件可以看作是实现细节。如果我们以后想使用模板和模型
将
HTML
页面呈现在这些邮件中,这是否也属于邮件发送者的职责?
假设我们在同一个组件中开发了发送邮件和内容模板的功能,此时它们是
紧耦合的。此外,如果我们以后想要通过
API
的方式,从
SMTP
切换到事
务性邮件提供商所提供的解决方案,就必须小心,不要干扰位于同一模块
中的模板功能。