마무리 자, 새 가상 메서드 소개 및 원래 처분 방법의 "봉인"을 포함한 전체 패턴은 모든 기본을 포함하는 매우 일반적인 목적입니다.
핸들러가 관리되지 않는 리소스 (almostnever이어야 함)에서 처리되는 경우가 아니라면 최종자를 필요로하지 않습니다.
클래스를 봉인하고 (가능하면 밀봉 클래스에 대한 내 견해는 아마도 지금까지 잘 알려져 있습니다 (design for inheritance or prohibit it) 가상 메소드를 소개 할 필요가 없습니다.
마지막으로 복잡한 코드를 구현 한 적이 기억이 안납니다.주의 할
public void Dispose()
{
somethingElse.Dispose();
}
한 가지는 당신이 정말로 강력한 코드려고하는 경우에, 당신 이 당신이 배치 된 한 후에 아무것도하려고하지 않는지 확인해야하고, 적절한 ObjectDisposedException
를 던질 것입니다 . 그것은 전 세계의 개발자들이 사용할 클래스 라이브러리에 대한 좋은 조언이지만, 이것이 자신의 작업 공간 내에서 사용되는 클래스 일 경우 거의 이득을 얻지 못합니다. 다른 큰 응답에 추가
내 수업에서는 청소가 필요한 관리되지 않는 리소스 만 있고 IDisposable은 정적 분석으로 처리하기 때문에 Dispose (bool disposing)로 보호됩니다. 필자의 경우 "처분"매개 변수는 Finalizer와 Dispose가 똑같은 것을하기 때문에 유용하지 않습니다. – AksharRoop