Dans un article de blog sur F # pour le plaisir et le profit, il est écrit:
Dans une conception fonctionnelle, il est très important de séparer le comportement des données. Les types de données sont simples et "stupides". Et puis séparément, vous avez un certain nombre de fonctions qui agissent sur ces types de données.
C'est l'opposé exact d'une conception orientée objet, où comportement et données doivent être combinés. Après tout, c'est exactement ce que sont les cours. En fait, dans une conception véritablement orientée objet, vous ne devez avoir que du comportement: les données sont privées et ne peuvent être consultées que via des méthodes.
En fait, dans OOD, ne pas avoir assez de comportement autour d'un type de données est considéré comme une mauvaise chose et a même un nom: le " modèle de domaine anémique ".
Étant donné qu'en C #, nous semblons continuer à emprunter à F # et à essayer d'écrire un code de style plus fonctionnel; comment se fait-il que nous n'empruntions pas l'idée de séparer les données / le comportement, et même de le considérer comme mauvais? Est-ce simplement que la définition ne correspond pas à la POO, ou y a-t-il une raison concrète pour laquelle c'est mauvais en C # qui, pour une raison quelconque, ne s'applique pas en F # (et en fait, est inversée)?
(Remarque: je suis particulièrement intéressé par les différences de C # / F # qui pourraient changer l'opinion de ce qui est bon / mauvais, plutôt que les individus qui peuvent être en désaccord avec l'une ou l'autre de ces opinions dans l'article du blog).