En una publicación de blog sobre F # por diversión y beneficio, dice:
En un diseño funcional, es muy importante separar el comportamiento de datos. Los tipos de datos son simples y "tontos". Y luego por separado, tu 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 ser combinados. Después de todo, eso es exactamente que clase es En un diseño verdaderamente orientado a objetos, de hecho, deberías no tiene más que comportamiento, los datos son privados y solo pueden ser Se accede a través de métodos.
De hecho, en OOD, no tener suficiente comportamiento alrededor de un tipo de datos es considerado una Cosa Mala, e incluso tiene un nombre: el " dominio anémico modelo ".
Dado que en C # parece que seguimos tomando préstamos de F # y tratando de escribir un código de estilo más funcional; ¿por qué no tomamos prestada la idea de separar datos / comportamiento e incluso la consideramos mala? ¿Es simplemente que la definición no coincide con OOP, o hay una razón concreta por la cual es malo en C # que por alguna razón no se aplica en F # (y de hecho, se invierte)?
(Nota: estoy especialmente 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 cualquier opinión en la publicación del blog).