Il mio posto di lavoro utilizza principalmente C # per scrivere codice. Sto cercando di capire un buon modo per indicare che una classe con metodi referentially trasparenti è destinata ad essere referenzialmente trasparente (vale a dire, dato lo stesso insieme di argomenti, si otterrà sempre lo stesso valore di ritorno) per i manutentori futuri. Ho preso in considerazione solo l'uso di classi statiche per classi destinate a contenere solo metodi referentially trasparenti, ma ha ricevuto il pushback dai miei colleghi in quanto preferiscono un approccio al test delle unità in cui tutte le classi dipendono dall'uso del costruttore DI da eseguire. Non vedo uno svantaggio per non sopprimere le funzioni referentially trasparenti per le prove di unità in quanto sono quasi sempre in-memory comunque, ma non sono riuscito a convincere i miei colleghi di quello.
I nostri nomi di classe usano nomi di modelli OO tipici come DTO o Factory o Controller e modelli per gli spazi dei nomi. Non sono a conoscenza di nomi di pattern in OO che indichino il tipo di intenzione che sto cercando (ovvero, non introdurre operazioni di effetto collaterale o a seconda di cose che vengono letti dal db o dal filesystem).