在电子邮件发送的上下文中,如果查询方法内部的外部信息或者应该像第二个示例那样传递值,是否可以。
1
void sendEmail(int companyId) {
String companyName = this.selectCompanyName(companyId);
String body = companyName;
send(body);
}
2
void sendEmail(String companyName) {
String body = companyName;
send(body);
}
答案 0 :(得分:3)
是,从方法查询仍然是单一责任(该方法仍然只做一件事:发送电子邮件)。这本身并不与原则相矛盾。
但是,该方法应直接传递给公司名称,而getCompanyName方法不应属于同一类型。
如果你想要关注SRP,你必须在类型上实际执行:如果类真的负责从(可能)数据库发送和提取东西吗?
是两个独立的工作,每个工作都应该得到他们的类型。