문제

C#에서 "내부"클래스 또는 메소드는 어셈블리 내에서만 위치한 것을 호출 할 수 있습니다 ... 루비는 "어셈블리"또는 그와 같은 실제 패키지가 없다는 것을 알고 있습니다 (보석 이외의 실제 패키지) '정말 똑같은 일),하지만 내부와 유사하게 메소드를 호출 할 수있는 위치를 제한 할 수있는 방법이 있는지 궁금합니다.

작은 프레임 워크를 업데이트하고 있으며 3 가지 방법이있는 클래스를 만들었습니다. 프레임 워크에서 3 가지 방법 중 2 개와 어디서나 세 번째 방법을 호출 할 수 있기를 원합니다. 루비에서 이것이 가능합니까? 아니면 내가 이것을 잘못하고 있는데 두 개의 개별 클래스를 만들어야합니까? 또는 ?

도움이 되었습니까?

해결책

불행히도 루비는 캡슐화 측면에서 상당히 부족한 언어입니다. 용량은 상당히 제한되어 있으므로 C# 내부 키워드와 동등한 것이 없습니다. 어쩌면 귀하의 경우 두 개의 별도 클래스가 더 좋을 수도 있지만 명확한 문서 또는 특수 명명 체계는 무거운 수정 없이도 동일하게 수행 할 수 있습니다.

또한 내부 키워드는 라이브러리 개발자에게 편의성에 지나지 않습니다. 누군가가 내부로 표시된 방법이나 클래스를 사용하지 못하게하는 것은 아니며 코드 주입, AOP 등으로 이러한 보호를 우회하는 방법이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top