2017-03-26 2 views
1

Dans le contexte de l'envoi d'un e-mail, est-il acceptable de rechercher des informations externes dans la méthode ou de passer la valeur comme le second exemple.Respect du Principe de Responsabilité Unique au niveau de la méthode

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); 
} 

Répondre

3

Oui, l'interrogation de la méthode est toujours la responsabilité unique (la méthode fait encore qu'une seule chose: envoyer l'e-mail). Cela en soi ne contredit pas le principe.

Cependant, que doit-on passer directement à la méthode, et la méthode getCompanyName ne doit pas appartenir au même type.

Si vous voulez suivre SRP, vous devez le faire aussi sur les types: est-ce que la classe devrait vraiment être responsable de l'envoi et de l'extraction de (probablement) la base de données?

  • Envoi de courrier à un nom de société
  • Recherche d'un nom de l'entreprise à partir d'une société id

sont deux emplois distincts qui méritent chacun leur type.