In einem Blog-Post auf F # heißt es zum Spaß und Gewinn:
In einem funktionalen Design ist es sehr wichtig, das Verhalten von den Daten zu trennen. Die Datentypen sind einfach und "dumm". Und dann haben Sie separat eine Reihe von Funktionen, die auf diese Datentypen einwirken.
Dies ist das genaue Gegenteil eines objektorientierten Designs, bei dem Verhalten und Daten kombiniert werden sollen. Das ist doch genau das, was eine Klasse ist. In einem wirklich objektorientierten Design sollte man eigentlich nur Verhalten haben - die Daten sind privat und können nur über Methoden abgerufen werden.
Tatsächlich wird in OOD ein unzureichendes Verhalten in Bezug auf einen Datentyp als eine schlechte Sache angesehen und hat sogar einen Namen: das " anämische Domänenmodell ".
Angesichts dessen, dass wir in C # immer wieder von F # leihen und versuchen, funktionaleren Code zu schreiben; Wieso leihen wir uns die Idee der Trennung von Daten / Verhalten nicht aus und betrachten sie sogar als schlecht? Ist es einfach so, dass die Definition nicht mit OOP übereinstimmt, oder gibt es einen konkreten Grund dafür, dass es in C # schlecht ist, dass es aus irgendeinem Grund in F # nicht zutrifft (und tatsächlich umgekehrt ist)?
(Hinweis: Ich bin speziell an den Unterschieden in C # / F # interessiert, die die Meinung über das Gute / Schlechte ändern könnten, und nicht an Personen, die einer der beiden Meinungen im Blog-Beitrag nicht zustimmen.)