È 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