자, 이것이 프로그래머에게는 주관적인 충분한 질문이지만, 여기에갑니다. 언어 및 소프트웨어 엔지니어링 실무에 대한 지식을 지속적으로 넓히고 있습니다. 그리고 저는 전혀 이해가되지 않는 무언가에 부딪 쳤습니다.
C ++에서 클래스 선언은 private:
헤더 파일에 메소드 및 매개 변수를 포함 합니다. 이론적으로는 사용자가 lib로 만들면 포함하도록 사용자에게 전달합니다.
Objective-C에서 @interface
s는 거의 똑같이 수행하여 개인 구성원을 나열해야합니다 (적어도 구현 파일에서 개인 메소드를 얻는 방법이 있습니다).
내가 알 수있는 것에서 Java와 C #을 사용하면 공개적으로 액세스 가능한 모든 속성 / 메소드를 선언하고 코더 가 구현 파일에서 모든 구현 세부 정보 를 숨길 수있는 인터페이스 / 프로토콜을 제공 할 수 있습니다 .
왜? 캡슐화는 OOP의 주요 원칙 중 하나입니다. 왜 C ++과 Obj-C에 이러한 기본 기능이 부족합니까? 모든 구현 을 숨기는 Obj-C 또는 C ++에 대한 모범 사례 해결 방법이 있습니까?
감사,