在方法层面上尊重单一责任原则



在电子邮件发送的上下文中,是否可以在方法中查询外部信息,或者是否应该像第二个示例一样传递值。

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 查找公司名称

是两个独立的工作,每个工作都值得他们的类型。

最新更新