부분을 이해하려는 시도입니다. 항목 40 : 설계 방법 서명 조심스럽게을 Effective Java 2 판에서.메서드 호출을위한 작성자 패턴 적용
메소드 시그니처 가독성을 향상시키기 위해 제안되는 것들 중 하나는 4 개 이하의 매개 변수를 목표로하는 것입니다. 이는 다음 중 하나는 다양한 기술을 사용하여 더 긴 파라미터리스트를 관리 할 수 있다고 제안된다
제 두 측면 께 빌더 패턴을 적용하는 결합 세번째 방법 (항목 2)로부터 메소드 호출 에 대한 오브젝트 생성.매개 변수가 여러 개인 매개 변수가있는 메서드를 사용하는 경우 매개 변수 중 일부를 선택적으로 사용하는 개체를 정의하고 클라이언트가이 개체에 대해 여러 개의 "setter"호출을 호출하도록 허용하는 것이 좋습니다 각각은 단일 매개 변수 또는 작은 관련 그룹을 설정합니다. 원하는 매개 변수에 이 설정되면 클라이언트는 해당 매개 변수의 최종 유효성 검사를 으로 수행하고 실제 계산을 수행하는 개체의 "실행"메서드를 호출합니다.
개체 작성에 사용되는 작성자 패턴은 잘 알고 있지만 메서드 호출에 적용하는 방법을 올바르게 이해했는지는 확실하지 않습니다.
여호수아 블로흐의 조언의 나의 해석이 올바른
public class Space {
public static class Builder {
// Required parameters
private final int x;
private final int y;
private final int z;
// optional params
private long time = 0;
public Builder(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
public Builder time(long val) {
time = val;
return this;
}
public void move() {
if (x == 0 || y == 0 || z == 0) {
throw new IllegalArgumentException("Cannot move to the centre of the universe");
}
// Do the actual work here
}
}
// public void move(int x, int y, int z, long time) {
// // Do the work here
// }
public static void main(String[] args) {
new Builder(1, 1, -1).time(1234).move();
}
}
이다 (필자는 move
방법에 대한 메소드 호출을 개선하기 위해 시도) : 여기
내가 지금까지 가지고 무엇인가?
아 나는 그렇게하려고했지만 내 마음이 미끄러웠다. 나는 자바 용 jsfiddle과 같은 것을 검색하려고했다. –
완료. 고마워요! –
나는 다음과 같은 것을 작성하는 것이 좋다고 생각한다 :'Builder builder = new MoveBuilder(). x (123) .y (456) .time (789); yourObject.execute (builder); ' – assylias