En una publicación de blog en F # por diversión y ganancias, dice:
En un diseño funcional, es muy importante separar el comportamiento de los datos. Los tipos de datos son simples y "tontos". Y luego, por separado, tiene una serie de funciones que actúan sobre esos tipos de datos.
Esto es exactamente lo contrario de un diseño orientado a objetos, donde el comportamiento y los datos están destinados a combinarse. Después de todo, eso es exactamente lo que es una clase. De hecho, en un diseño verdaderamente orientado a objetos, no debe tener nada más que comportamiento: los datos son privados y solo se puede acceder a ellos mediante métodos.
De hecho, en OOD, no tener un comportamiento suficiente en torno a un tipo de datos se considera algo malo e incluso tiene un nombre: el " modelo de dominio anémico ".
Dado que en C # parece que seguimos pidiendo prestado de F # y tratando de escribir más código de estilo funcional; ¿Cómo es que no tomamos prestada la idea de separar datos / comportamiento, e incluso lo consideramos malo? ¿Es simplemente que la definición no coincide con OOP, o hay una razón concreta de que sea mala en C # que por alguna razón no se aplica en F # (y de hecho, se invierte)?
(Nota: Estoy específicamente interesado en las diferencias en C # / F # que podrían cambiar la opinión de lo que es bueno / malo, en lugar de las personas que pueden estar en desacuerdo con cualquiera de las opiniones en la publicación del blog).