2017-12-14 2 views
-1

보다 더 나은 생성자에 PARAM을 전달 하는가하면 내가 클래스의 예를 가지고 있다고 가정 그들이 이런 짓을 할 것이다 :정적 방법

public class Example(){ 
    String param; 
    public Example(String param){ 
     this.param = param 
    } 
    public String method1(){...} 
    public tring method2(){...} 
} 
: 우리는 같은 것을 예 클래스의 생성자에서 PARAM을 통과하고 PARAM없는 사람들이 메소드를 호출하면
String param = "Hello"; 
String result = Example.method1(param); 
... 
String result2 = Example.method2(param); 

지금은 나에게 질문을 회전,해야이 코드를 더 6,

는 그리고 클라이언트는 호출 2는 1보다 더 나은 경우 궁금 해요

Example example = new Example("Hello"); 
String result = example.method1(); 
String result2 = example.method2(); 

. 왜냐하면 내 opion에서 두 번째는 더 많은 것입니다 OOP 및 우리가 여러 입력 매개 변수를 전달할 필요가 없을 때 사용하기 쉽게? 누구든지 조언을 해 줄 수 있습니까?

+0

나는 그것이 당신의 코드가 사용되는 것에 달려 있다고 생각한다. – notyou

+0

'Example'에이 2 가지 메소드 만 있고 동일한 메소드로 메소드를 호출 할 때 항상 동일한 파라미터가 호출됩니다. – Lino

+0

param이 생성 된 객체에서 중요한 상수 값이면 생성자에 전달합니다. methodX() 호출마다 다를 수있는 경우 매개 변수입니다. – brummfondel

답변

1

두 번째 방법은 param 값이 생성자에서 한 번 설정되고 이후 변경되지 않기 때문에 두 호출간에 param의 일관성을 유지하는 것이 좋습니다.

두 가지 정적 방법을 사용하는 첫 번째 방법은 두 번의 호출 사이에서 param 값을 유연하게 전환 할 수 있습니다.

두 번째 방법은 사용자를 보호하기위한 것입니다 (서로 다른 param을 호출 순서에서 전달하는 것이 실수라고 가정).

0

메소드가 수행하는 작업과 코드 요구 사항에 따라 다릅니다. 이 두 메소드 모두에서 String 변수를 사용할 수있게하려는 경우에는 생성자에서 초기화 할 수 있습니다. 그러나 클래스 대신 Object에 밀접하게 묶이지 않은 정적 메서드가 있고 매개 변수화 된 정적 메서드를 사용하면 다른 클래스의 다른 입력에 대해 작업 할 수 있기 때문에 나쁘지 않습니다.

결국 모든 사례와 코드 기능에 따라 달라집니다.