는이 같은 클래스를 가지고있다. 그러나 close()를 호출하면 이후에 makeCallOne() 또는 makeCallTwo()를 호출하면 예외가 반환됩니다.Java 객체를 "비활성화"하는 방법은 무엇입니까? 사용자가이 클래스의 인스턴스를</p> <pre><code>public class DatabaseSession { public makeCallOne() {...} public makeCallTwo() {...} public close() { ... } } </code></pre> <p>경우에, 나는 그들을 makeCallOne 및 makeCallTwo를 호출 할 수 있기를 기대 :
각 방법의 맨 위에 if 문을 사용하여이 작업을 수행 할 수 있지만 작성하는 것을 잊기 쉽습니다. "이 물체는 현재 쓸모가 없습니다. 더 이상 호출 할 수 없습니다."라고 말하는 데 사용되는 표준 메커니즘은 무엇입니까?
말하자면 상태 플래그를 사용하고 메소드의 시작 부분에서 상태를 확인한 다음 필요에 따라 예외를 throw합니다. 내가 생각할 수있는 모든 기술은 기본적으로 같은 방식으로 작동합니다. check/run/throw – MadProgrammer
모든 메소드의 시작 부분에 if 문을 작성하는 대신 if 문을 개인 메소드에 작성하고 호출 할 수 있습니다. – Ozzie
@Ozzie - 거기에서도 예외가 발생합니다. 그런 다음'ensureOpen()'과 같이 호출 될 수 있습니다. – OldCurmudgeon