È meglio per un'API quando fornisce metodi aggiuntivi che controllano se qualcosa esiste prima di aggiungere?
Ad esempio:
if (!userManager.HasPermission(user, "somePermission")
userManager.AddPermission(user, "somePermission");
vs
userManager.AddPermisionIfDoesntExist(user, "somePermission");
Se utilizzi questo HasPermission
in molti posti, non sarebbe meglio creare un metodo come AddPermisionIfDoesntExist
?
Oppure, se i duplicati non sono consentiti, dovrebbe invece AddPermission
controllarlo?
Quindi sarebbe simile al modo in cui Dictionary
è progettato, con metodi come TryAddPermission
e AddPermission
che generano eccezioni quando il permesso esiste già?
Inoltre, nota che AddPermission
e HasPermission
stanno effettuando chiamate al database