객체에 대한 참조를 저장하지 않고 Java 코드로 작성된 객체를 보았습니다. 예를 들어, 이클립스 플러그인에서 다음과 같이 생성 된 SWT 셸을 보았습니다.
new Shell();
이 새로운 Shell 객체는 변수에 저장되지 않지만, 윈도우가 닫힐 때 기본적으로 발생하는 윈도우가 배치 될 때까지 참조 된 상태로 유지됩니다.
이것에 대한 참조를 저장하지 않고 이와 같은 객체를 생성하는 것은 나쁜 습관입니까? 아니면 도서관이 제대로 설계되지 않았습니까? 참조가 필요하지 않고 개체의 "부작용"만 원하는 경우 어떻게합니까? 어쨌든 참조를 저장해야합니까?
최신 정보:
분명히, 위의 예는 좋지 않습니다. 이와 같이 생성 된 UI 요소를 보았지만 이와 같은 SWT 셸을 만드는 것은 셸 인스턴스에서 open 메서드를 호출해야하기 때문에 의미가 없습니다. 있다 AIX에서 제공하는 좋은 예 하여에서 다음과 같은 자바 동시성 튜토리얼 :
(new HelloThread()).start();
이 관행은 많은 상황에서 볼 수 있으므로 질문이 남아 있습니다. 좋은 습관입니까?
Shell.createTopLevelShell()
에서이 경우 생성자를 사용하는 것과 같은 정적 방법을 사용하는 것이 좋습니다. 그러나 기능상 차이는 거의 없습니다.)
dispose()
d 여야합니다 . 규칙 1 : 객체 를 만든 경우 폐기합니다. eclipse.org/articles/swt-design-2/swt-design-2.html