|
자바일반 |
[1] |
|
등록일:2008-03-13 12:43:05 (0%) 작성자: 제목:static import |
|
[해당 글의 원본은 자바 썬의 공식홈페이지에 있으며 잘못된 번역이 있을 수 있음을
미리 알려드리는 바입니다.]
원본 : http://java.sun.com/j2se/1.5.0/docs/guide/language/static-import.html
static member를 접근하기 위해 우리는 해당 member의 클래스를 앞에 언급한다.
아래와 같은 코드가 일반적이다.
double r = Math.cos(Math.PI * theta);
때때로 인터페이스 속으로 static member들을 넣고 해당 인터페이스부터 상속받는다.
안티패턴 중 'Constant Interface Antipattern' 에 속하는 경우다.
문제는 그 클래스가 다른 클래스의 static member의 사용하는 것이 단순히 상세구현이라는데에
있다. 하나의 클래스가 하나의 인터페이스를 구현할 때, 그것은 클래스의 Public API의 일부분이
된다. 상세구현은 public API에서 나오지 말아야 한다.
static import 구조는 static member을 포함하는 타입으로 부터의 상속없이 static member을
접근할 수 있다. 대신, 프로그램은 member를 import하거나
1) import static java.lang.Math.PI; 2) import static java.lang.Math.*;
같이 선언한다.
static member가 import되어졌다면 아래와 같이 특별한 선언없이 사용할 수 있다.
double r = cos ( PI * theta ) ;
static import 선언은 일반 import선언과 비슷하다. 일반 import 선언의 패키지로부터 클래스들을
import 시킬 곳에 패키지 선언 없이 사용하고 , static import 선언이 클래스들로 부터 static member
들을 import 하는 곳에 클래스 선언 없이 사용하면 된다.
그럼 언제 static import를 사용하는가? 답은, 매우 드물다.
상수의 로컬 복사를 선언하고자 할 때 그때만 사용해라. 또는 Constant Interface Antipattern 에서
상속을 너무 많이 사용한다 싶을 때 사용하면 된다. 다른 말로 하면, 하나 또는 두개의 클래스로부
터 static member를 빈번히 접근하려 할 때 사용하면 된다.
만약 static import를 많이 사용하게 되면 프로그램의 가독성과 유지보수가 힘들어진다. 코드를 읽
는 사람은 해당 static member가 어느 클래스로부터 왔는지 알지 못할 것이다. 한 클래스로 부터
모든 static member들에 대한 접근은 특히 가독성을 떨어뜨린다. 만약 한 두개의 member가 필요하
다면 각각을 import 시키면 된다. 적절히 사용한다면 static import 는 프로그램을 좀더 읽기 쉽게 만
들수 있고 클래스 이름의 반복을 피할수 있다.
[출처] static import|작성자 ripper7504 |
[본문링크] static import
|
[1]
|
|
|
|
|
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=2613 |
|
|
|
|
|
|
|
|
|
Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.
|
|
|