에서 cat-v.org에 많은 안티 OOP의 호언 장담 한 I 조 암스트롱에 의해 통로 중 하나가 다음되었으며, OOP 모델에 대해 몇 가지 이의를 제기 발견
이의 제기 4 – 객체의 비공개 상태
국가는 모든 악의 근원입니다. 특히 부작용이있는 기능은 피해야합니다.
프로그래밍 언어의 상태는 바람직하지 않지만, 실제 상태는 풍부합니다. 은행 계좌 상태에 관심이 많으며 은행에서 돈을 입금하거나 인출 할 때 은행 계좌 상태가 올바르게 업데이트 될 것으로 기대합니다.
현실 세계에 국가가 존재한다면 프로그래밍 언어는 국가를 다루기 위해 어떤 시설을 제공해야합니까?
OOPL은“프로그래머로부터 상태를 숨 깁니다”라고 말합니다. 상태는 액세스 기능을 통해서만 숨겨지고 표시됩니다. 기존의 프로그래밍 언어 (C, Pascal)는 상태 변수의 가시성이 언어의 범위 규칙에 의해 제어된다고 말합니다. 순수한 선언적 언어는 국가가 없다고 말합니다. 시스템의 전역 상태는 모든 기능으로 수행되며 모든 기능에서 나옵니다. 모나드 (FPL 용) 및 DCG (논리 언어)와 같은 메커니즘은 프로그래머에서 상태를 숨겨서 "상태가 중요하지 않은 것처럼"프로그래밍 할 수 있지만 필요한 경우 시스템 상태에 완전히 액세스 할 수 있습니다.
OOPL이 선택한“프로그래머에서 상태 숨기기”옵션이 더 나쁜 선택입니다. 국가를 밝히고 국가의 성가신 것을 최소화하는 방법을 찾으려고 노력하는 대신, 국가를 숨 깁니다.
이것이 정확히 무엇을 의미합니까? 나는 거의 OOP 수준이 낮거나 절차 적 경험이 거의 없기 때문에 아마도 내가 익숙하지 않은 것을 설명 할 것입니다. 그리고보다 현대적인 관점에서 볼 때, 객체 지향 히스테리의 대부분이 (적어도 내가 알 수있는 한) 전달되었으므로 통과가 얼마나 정확하고 관련이 있다고 생각합니까?
당신의 도움을 주셔서 감사합니다.