Sto imparando la programmazione funzionale e affronta la seguente confusione quando la applico ai miei progetti C #:
- Inizio scrivendo pure funzioni statiche e uso la composizione delle funzioni.
-
Dopo che il codice raggiunge una certa dimensione, mi rendo conto che alcune di queste funzioni tendono a "cluster" su alcuni tipi. Ad esempio, esistono > 5 funzioni con lo stesso tipo di parametro.
-
Il prossimo passo, il mio background orientato agli oggetti prende il sopravvento e sposto queste funzioni in questo tipo (classe) come metodi. Di conseguenza, le loro firme semplificano e spesso diventano più coese. Tuttavia, perdo i vantaggi dello stile funzionale.
Mi sono appassionato molto all'approccio funzionale, ma non riesco a convincermi che il mio codice iniziale fosse migliore di sopra. Quale approccio preferiresti in questa situazione (in C # o in un'altra lingua mista)?
Correlati: Design in "misto" lingue: progettazione orientata agli oggetti o programmazione funzionale?
class MyType { }
class Functions
{
public static void X(MyType t) { }
public static void Y(MyType t) { }
public static void Z(MyType t) { }
public static void T(MyType t) { }
public static void U(MyType t) { }
}
class Class1
{
public MyType T { get; private set; }
public Class1(MyType t) { T = t; }
public void X() { }
public void Y() { }
public void Z() { }
public void T() { }
public void U() { }
}