2011-12-19 2 views
4

필자는 Java 생성자, 디자인 패턴 및 일부 매개 변수를 일반적으로 기다리고있는 경우 매개 변수가없는 생성자로 개체를 초기화하는 좋은 방법에 대해 일부 동료와 논의 중이었습니다. ,매개 변수가없는 생성자에서 고급 생성자를 호출하는 좋은 스타일은 무엇입니까?

public class Foo { 

public Foo() { 
this(0,0,0); 
} 

public Foo(int a, int b, int c) { 
this.a = a; 
this.b = b; 
this.c = c; 
} 
.. 
} 

내 질문이 좋은 스타일과 행동이 정확하게 무엇이다 : 오래된 것들의

하나는 항상 뭔가를 구현하는 자신의 방식으로 함께했다? 내가해야 이해하는 것과

:

먼저 개체를 인스턴스화 한 후 매개 변수화 생성자를 호출하면 해당 매개 변수를 설정하여 해당 유형의 새 개체를 생성하고 새로운 일에 대한 자신의 기준을 설정
  • . 따라서 GC는 처음 생성 된 것을 삭제합니다. 생성자 연이은
+1

개체를 인스턴스화하는 것은 생성자가 아니며 'new' 키워드입니다. 생성자는 객체 초기화에만 책임이 있습니다. – helpermethod

+0

그래서 항상 메모리를 할당하는 새로운 키워드이고 생성자는 객체의 청구뿐입니다? (또한 C++ 용?) – Stefan

답변

6
So the GC has then to delete the first created one. 

제 1 인스턴스 만 이제까지 생성된다.

귀하의 질문에 대답하기 위해, 그래, 당신이 foo()foo(int, int, int) 이것은 Telescoping Constructor pattern로 알려져있다

6

모두 필요 가정, 좋은 스타일입니다. Effective Java에서 Joshua는 alternatives에 언제 어떤 것을 사용할 지 제안합니다.

관련 문제