在电子邮件发送的上下文中,是否可以在方法中查询外部信息,或者是否应该像第二个示例一样传递值。
1.
void sendEmail(int companyId) {
String companyName = this.selectCompanyName(companyId);
String body = companyName;
send(body);
}
阿拉伯数字。
void sendEmail(String companyName) {
String body = companyName;
send(body);
}
是的,从该方法查询仍然是单一责任(该方法仍然只做一件事:发送电子邮件(。这本身并不与原则相矛盾。
但是,该方法应直接传递公司名称,并且 getCompanyName 方法不应属于同一类型。
如果你想遵循SRP,你也必须在类型上实际这样做:类真的应该负责从(大概(数据库中发送和获取东西吗?
- 向公司名称发送邮件
- 从公司 ID 查找公司名称
是两个独立的工作,每个工作都值得他们的类型。