문제

저는 코딩 할 때 멤버/유형에 액세스 수정자를 올바르게 적용하는 방법을 이해하는 데 도움이되는 리소스를 찾고있는 학생입니다.

나는 (C#에서) 개인, 공개, 보호 등과 같은 수정자를 액세스하는 데 어떤 제한이 있는지 알고 있습니다. 내 자신의 작은 프로젝트를 코딩 할 때 모든 것을 공개하는 경향이 있습니다. 나는 이것이 창 밖으로 캡슐화를 던지기 때문에 절대적으로 끔찍한 연습이라고 확신합니다. 나는 내부와 개인과 같은 것을 사용하는 것이 올바른시기를 결코 알지 못합니다.

액세스 수정 자의 적절한 사용을 이해하는 데 도움이되는 좋은 자원이 있습니까?

도움이 되었습니까?

해결책

이것은 경험 유형 질문입니다. 최소 특권 수준에서 시작하여 필요에 따라 홍보하십시오.

다시 말해, 모든 것을 비공개로 만드십시오. 보호 또는 공개로 홍보해야한다는 것을 알기 전까지. 시간이 지남에 따라 의도하고 나중에 수업의 사용법에 대한 느낌을 받게됩니다.

다른 팁

나는 단순히 모든 것이 가능한 한 제한적인 액세스를 만듭니다.

  • 기본적으로 개인
  • 그렇지 않으면 내부,이 어셈블리 내의 다른 클래스에 노출 된 API 인 경우
  • 또는 어셈블리 밖에서 노출 된 API 인 경우 공개
  • 또는 서브 클래스에서만 호출되도록 의도 된 경우 보호됩니다.

모든 것을 개인화하기 시작하십시오. 필요하다고 느끼면 올바른 유형을 선택할 수있는 느낌이들 때까지 수정자를 변경하십시오.

일을 더 쉽게하기 위해 사용해보십시오 TDD, 또는 단위 테스트를 작성하면 더 많은 어려움을 겪을 수 있습니다 ...

모든 종류의 튜토리얼이나 교육 자료는 당신에게 동일한 지침, 즉 다른 게시물이 이미 제공 한 지침을 제공합니다. 따라서 "리소스"에서이 특정 문제에 유용한 정보를 많이 기대하지 마십시오.

그 이상의 주요 자원은 다른 사람들이 작성한 코드입니다. 큰 C# 프로젝트를 취하십시오 (예 : 단핵증, 또는 SharpDevelop)), 그들이 당신에게 설명 된 원리를 구체적으로 따르는 방법을 연구하십시오. 또한 디자인 할 특정 클래스가있는 경우 시스템 라이브러리에서 유사한 클래스를 생각하고 (모노 소스를 보거나 .NET 리플렉터를 사용하여) 구현 방법을 찾으십시오.

클래스의 인터페이스에 대해 생각하면서 시작해야합니다. 즉, 목적을 달성하기 위해 노출 해야하는 필요하고 충분한 루틴 세트입니다. 공개하십시오. 다른 모든 것은 비공개 여야합니다.

나는 공개되지 않은 모든 것을 보호하는 경향이 있습니다. 내 사용자의 자유를 내 수업에서 원하는대로 할 수있게됩니다. 수업이 깨지면 문제가 될 것입니다.

클래스를 상속받을 때마다 OOP가 구현을 숨기는 경우에도 어떻게 작동하는지 알아야합니다. 구현을 숨길 수는 있지만 문서를 숨기지 않습니다.

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