습관의 한 형태로서, 나는 일반적으로 테스트를 위해 정적 메소드에 보관하지 않으며 내 Java 프로젝트의 라인을 쉽게 사용할 수 있습니다. 그러나 과거에는 클래스의 정적이 아닌 인스턴스를 만드는 한 가지 방법 만 알고 있었기 때문에 주 클래스를 중심으로 회전하는 정적 메서드와 비 정적 메서드를 지저분하게 혼합해야했습니다. 일반적으로, 나는 이것을 각 메소드에서 클래스 메소드를로드하는 것이 아니라 전역 변수로 사용한다.모든 것을 비 정적으로 만들기
예를 들어, MainGUI 및 ProjMain 클래스가 있다고 가정 해 봅시다. 자연스럽게 나는 동일한 기능을 수행 할 이동, 나는 내가 MainGUI 클래스에서 액세스 할 ProjMain 클래스 내에서 메소드가 그러나 경우에, 이것은 아주 잘 작동
private MainGUI gui = new MainGUI();
: ProjMain, 나는 전역 변수를 사용합니다.
private ProjMain project = new ProjMain();
이 기사에서는 StackOverflowError를 만듭니다. 전역 메소드가 아닌 개별 메소드에 변수를 넣지 않고도 클래스의 인스턴스를 변수로 가져 오는 간단한 방법이 있습니까?
왜 정적 인 것을 피고 싶습니까? 특정 인스턴스가 여러 개 존재하지 않는다면 구체적인 클래스를 만들고 필요없는 인스턴스를 만드는 데는 아무런 이점이 없습니다. 인스턴스 데이터가 필요없는 메소드를 제공하는 경우 정적으로 만들어야합니다. 사용중인 패턴은 "싱글 톤"패턴이지만 일반적으로 싱글 톤을 포함하는 변수는이 모든 문제를 피하는 정적 변수입니다. 일부 프로그래머들은 정적 인 것을 피해야한다고 생각하는 것은 제 경험입니다. 왜냐하면 어떻게 든 "객체 지향적"이 아니기 때문입니다. 그러나 하나만 필요하다면 정적을 사용하십시오. – AgilePro