시스템에서 부정적인 결과를 방지하기 위해 외부 라이브러리 및 프레임 워크의 API에 대한 액세스를 제한하는 것이 가치가있는 경우를 경험했습니다.
예를 들어, SharePoint 응용 프로그램에서는 spList.Items.GetItemById
큰 성능 문제가 발생할 수 있다는 사실을 모르면 루프에서 목록 항목을 가져 오기 위해 호출 하는 것이 자연스럽게 보일 수 있습니다.
또한 테스트 환경에서 모든 이메일을 제대로 프록시하고 조롱 할 수 있도록 모든 사람이 자신의 클래스를 사용하여 이메일을 보내도록하려면 SmtpClient 사용을 금지해야 할 수도 있습니다.
자체 코드의 특정 위치를 제외하고 외부 코드에 대해 이러한 제약 조건을 달성 할 수있는 신뢰할 수 있고 합리적인 방법이 있습니까? 모든 상황에서 이러한 방법 / 클래스에 대한 접근을 완전히 막을 필요는 없습니다. 예를 들어 반영 또는 일종의 비활성화로 인해 사용해서는 안된다는 엄격한 경고 여야합니다. 바람직하게는 프로그래머가 가능하다면 / 필요할 경우 이러한 제약을 무시하는 조치를 적극적으로 취하도록 강요한다.