라이브러리를 만들 때 같은 클래스의 다른 메서드가 아니라 리플렉션을 통해 다른 라이브러리 가 호출 할 때 개인 메서드가 예상대로 작동 해야하는지 확인해야 합니까?
예를 들어, 개인 메소드가 다음을 private DoSomething(int number)
기대하는 경우 :
number
0이 아닌 양의 정수이며,- 개인 변수
string abc
는 null이 아니며 빈 문자열이 아닙니다.
그리고 두 조건이 일치하지 않으면 못 생겨 실패합니다. 클래스의 모든 메소드 가 항상 abc
호출 하기 전에 비어 있지 않은 값을 할당하고 DoSomething
0이 아닌 양의 정수를 전달 한다는 것을 알고 있더라도 실패를 처리해야합니다. 방법?
다시 말해 리플렉션을 통해 안전하지 않은 통화로부터 보호되지 않는 코드는 저품질 코드로 간주 될 수 있습니까? 아니면 리플렉션을 사용하여 통화가 끊어지지 않도록하는 발신자의 코드 입니까?
참고 : 내 질문은 표준 라이브러리 세트에만 적용됩니다. 이것은 매우 안전해야하는 코드에는 적용되지 않습니다 (예 : 예상치 않게 작동하거나 충돌하기 위해 리플렉션을 사용하여 누군가가 관심을 가질 수있는 경우).
¹ 클래스가 올바르게 문서화 되었기 때문에 다른 개발자가이 메소드 등을 위반하지 않도록 충분한 단위 테스트가 있으므로