재미와 이익을위한 F # 의 블로그 게시물 에서 다음과 같이 말합니다.
기능적 디자인에서는 데이터와 동작을 분리하는 것이 매우 중요합니다. 데이터 유형은 단순하고 "멍청하다". 그리고 따로 따로, 이러한 데이터 유형에 작용하는 많은 기능이 있습니다.
이것은 동작과 데이터가 결합되는 객체 지향 디자인과 정반대입니다. 결국, 그것이 바로 클래스입니다. 실제로 객체 지향 디자인에서는 동작 외에는 아무것도 없어야합니다. 데이터는 개인 정보이며 메서드를 통해서만 액세스 할 수 있습니다.
실제로 OOD에서 데이터 유형 주위에 충분한 동작이없는 것은 나쁜 것으로 간주되며 이름은 " 빈혈 도메인 모델 "입니다.
C #에서는 F #에서 계속 차용하고 더 기능적인 스타일의 코드를 작성하려고합니다. 어떻게 데이터 / 동작을 분리한다는 아이디어를 빌리지 않고 나쁜 것으로 생각합니까? 단순히 정의가 OOP와 함께 있지 않다는 것입니까, 아니면 C #에서 어떤 이유로 F #에 적용되지 않는 것이 확실한 이유가 있습니까 (실제로 반대로되어 있습니까)?
(참고 : 블로그 게시물의 의견에 동의하지 않을 수있는 개인보다는 오히려 좋고 나쁜 것에 대한 의견을 바꿀 수있는 C # / F #의 차이점에 특히 관심이 있습니다.)