2013-06-18 2 views
3

나는 창을 띄우는 것과 같은 간단한 작업을 처리하고 몇 가지 패널과 다른 구성 요소로 채우는 GUI 클래스를 만들고 있습니다. GUI를 정적으로 만드십시오.

  • 내 GUI 클래스의 객체를 인스턴스화 GUI 수준의

  • 에있는 모든 정적 호출을 확인하고 해당 객체의 메소드를 호출 :

    나는 가장 좋은 방법이 무엇인지 궁금합니다. "평범한"방법.

Java에 익숙하지 않은 점에 유의하십시오. 내가 오해 한 것이 있다면 기꺼이 배울 것입니다.

감사합니다.

+1

정적으로 테스트 한 후 요구 사항에 따라 설계하십시오. http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html –

+0

정적 창을 사용하지 말고 클래스 인스턴스, 이벤트, 방법 등. 그건 당신이 내게 묻는다면 모범 사례입니다. – Filip

답변

1

정적 메소드가 TDD 접근법의 측면에서 좋지 않기 때문에 GUI 메소드의 인스턴스를 인스턴스화하는 것, 즉 두 번째 접근법을 사용합니다. 나는 그것이 좋지 않다는 것을 의미 할 때, 정적 방법은 약간의 시간을 조롱하기가 어렵습니다.

메서드가 객체의 상태를 처리 할 때마다 인스턴스 메서드를 사용하는 것이 가장 이상적입니다. 객체 상태에 의존하지 않는 유틸리티 메소드의 경우에는 정적 객체를 선택해야합니다.

TDD를 가져 오면 계단식 정적 메서드가 있습니다. 정적 메서드를 조롱하는 것을 지원하지 않는 단위체 및 다양한 다른 프레임 워크에서는 때때로 junits를 쓰는 것이 어렵습니다. 사람들은 대개 인스턴스 메서드를 선호합니다. 정적 메소드를 사용하는 데에도 마찬가지로 좋은 이유가 있습니다.

그 외에도에서 클래스 수준의 방법으로, 당신은 다형성

0

"평소와 같이"하는 것이 좋습니다. 가능하다면 정적 메소드 (!)를 사용하는 것이 일반적으로 좋은 접근 방법이지만 (사용자 클래스에 대한 외부화, 더 나은 테스트 가능성, 더 쉬운 재사용), 나는 당신의 GUI에 대해서는 추천하지 않는다. GUI를 정적으로 만들면 싱글 톤처럼 동작하므로 여러 인스턴스를 만들 수 있습니다. 귀하의 창, 프레임 등 동시에.

0

필요에 따라 GUI 개체를 인스턴스화하고 메시지 또는 작업 교환을 위해 이벤트을 사용해야합니다. 정적이든 아니든 - 그것은 당신에게 달렸습니다.

1

어딘가에서 "getInstance"과 같은 단일 정적 메서드를 사용하고 일반 OOP를 다른 곳에서 사용하도록 제안합니다. 상속, 다형성 또는 OOP의 다른 일반적인 기능이 필요하다는 것을 발견하면 나중에 GUI 내부의 모든 것을 정적으로 유지하면 문제가 발생할 수 있습니다.

+0

OOP은 무엇을 의미합니까? – Goatcat

+0

@Goatcat OOP : 객체 지향 프로그래밍 – pinkpanther

0

난 항상 GUI의 다른 부분에 GUI의 한 부분에서 이벤트를 위임 할 스레드 안전한 싱글 톤을 사용하여 같은 죄송 모델의 다른 능력을 잃게.

0

정말 다릅니다. 매우 작은 프로젝트의 경우 메인 클래스 파일의 모든 것을 만들고 모든 구성 요소를 정적으로 만드는 것은 괜찮습니다. 그러나 프로젝트가 커질수록 분명히 다른 클래스를 추가 할 수 있습니다.

현재 모든 GUI 부품을 기본 클래스에 통합하고 다른 클래스를 사용하여 데이터 간의 관계를 처리 할 때 더 나은 동작을하는 프로젝트를 진행 중입니다. 상관없이 : GUI는 데이터와 독립적이어야하며 클래스를 사용하여 복잡한 데이터를 처리하는 것이 좋습니다.

관련 문제