Allo scopo di fornire un esempio concreto per la mia domanda, diciamo che sto costruendo un'API che fornisce l'accesso a un sistema di posta elettronica e contiene un insieme di classi pubbliche, ad es.    Mailbox   ,   MailboxFolder   ,   Message   ,   MessageAttachment    e così via. 
È una buona idea provare ad anticipare in che modo i client possono utilizzare l'API e fornire metodi di "aiuto" per le operazioni comuni?
 Ad esempio, immagina che la mia classe   Message    abbia un metodo   Save(string toFilePath)   . Forse sarebbe utile fornire un altro metodo in   Message    che crea un "nome file sicuro" dall'oggetto del messaggio, cioè un nome di file che è una porzione ragionevole del soggetto (poiché la lunghezza di un oggetto di posta elettronica può essere lontana supera la lunghezza massima di un percorso file) dove tutti i caratteri che non sono validi per l'uso in un nome di file sono stati sostituiti con un carattere utilizzabile. 
Il motivo potrebbe essere che prevedo che i clienti potrebbero voler salvare un'email con un nome simile all'oggetto.