2017-05-04 3 views
1

AppConfig 클래스의 라이브러리가 있습니다.javadoc의 기본값

이 라이브러리를 사용하는 다른 개발자에게 AppConfig의 기본값을 알리는 가장 좋은 방법은 무엇입니까? 내가 가진

하나 개의 아이디어, javadoc는이 같은 것을 그것을 언급하는 것입니다

public class AppConfig { 
    private int someSetting = 50; 

    /** 
    * This setting does something. 
    * 
    * @default 50 
    */ 
    public int setSomeSetting(int someSetting){ 
     this.someSetting = someSetting; 
    } 
} 

그러나이 시나리오에 대한 실제 모범 사례는 무엇입니까?

+0

과 같이 몇 가지 상수를 만들기 위해 더 나은 것 : '공공 정적 최종 INT의 DEFAULT_SETTING = 50;'을 초기화하기 위해,'다음'someSetting = DEFAULT_SETTING 있습니다. 그런 식으로 기본값이 무엇인지, 왜 그것이 특정 값으로 설정되는지 명확하게 알 수 있습니다. –

+0

@ patrick-hainge 기본값이 무엇인지 명확하게 알 수 있습니다.하지만 왜 그 값으로 설정되어 있는지 분명하게 알 수 있습니까? – user2015253

+0

"x = 50"을 보지 않고 설명서 또는 주석을보고 'x'가 '50'으로 시작하는 이유를 알아야하는 대신 x = THE_DEFAULT_VALUE를보고 즉시 이해하는 이유 무슨 일이야. –

답변

2

올바른 (내가 @default 정말 지원되는 태그없는 생각으로); 그러한 주석이 없습니다.

거기에서부터 : 이것은 "순수한 스타일"입니다. 의미 : javadoc은 괜찮습니다 - 당신은 무엇이든지 당신을 위해 일합니다; 이 클래스를 사용할 주변 팀이 각각 있습니다.

그래도 까다로운 질문 : 어디 그 정보를 넣어! 당신이 볼 때 : 클래스 setSomeSetting()의 사용자가 ... 이미이 기본값을 적용했습니다.

즉, 아마도 생성자 내에서 이러한 기본값을 사용하고있을 것입니다. 그래서 당신은 "class javadoc"에서 그 디폴트에 대해 사용자 권한을 말해야합니다. 그리고 아마 그들의 가치.

등 :

/** 
* ... Provides properties x, y,z; with defaults 50, 100, 150 
*/ 
public class Foo { 
    public final int BAR_DEFAULT = 50; 
    private int bar = BAR_DEFAULT; 

    public void setBar(int newBar) { bar = newBar; } 
+0

나는 두 개의 센트를 "_ 그 정보를 넣을 곳 _"에 추가 할 것입니다. 이것은 setter 대신 getter에 있어야 할 수도 있고 있어야 할 수도 있습니다. 우리는 그것을 업데이트 할 때 가치가 무엇인지 신경 쓰지 않습니다. 물론 액세스를 기반으로하는 javadoc에서 볼 수 있기 때문에 상수를 사용하는 것이 매우 명확합니다. – AxelH

+0

@GhostCat Config 클래스에 20 개 또는 50 개의 변수가 있으면 어떻게됩니까? javadoc 클래스에 모든 기본값을 나열해야합니까? – user2015253

+0

@AxelH 더 정확하고 직관적 인 것 같습니다. 그러나이 경우에이 라이브러리를 사용하는 개발자는 config를 라이브러리에 전달하여 라이브러리를 만들게됩니다. 기본적으로 라이브러리를 제외하고 아무도 getter를 호출하지 않습니다. 이 라이브러리를 사용하는 개발자는 일반적으로 AppConfig 객체를 만들고 어쩌면 몇 가지 값을 변경 한 다음 라이브러리에 전달하고 라이브러리를 사용할 것입니다. – user2015253