나는 우리가 C c
VAR를 넣어 경우 코드의 일부 조각이모든 개체에 대해 정적 또는 새 인스턴스가 필요합니까?
public class A {
public void doSomething(B b) {
b.addSometing("queue1", getDefault());
b.addSometing("queue2", getDefault());
b.addSometing("queue3", getDefault());
}
private C getDefault() {
C c = new C();
c.setAutoCreate(true);
c.setExired(false);
c.setDelay(3500);
return c;
}}
처럼 보인다 보았다. (클래스 A의 모든 객체에 대한 기본값)는 A
클래스의 모든 객체에 대해, A
클래스의 많은 객체에 대해 많은 메모리를 사용합니다. C c
을 정적으로 만드는 것이 더 좋을까요? 클래스 전체에 대해 C
클래스의 인스턴스를 하나만 만들고 클래스 A
의 모든 객체에 사용합니다. 우리가 그렇게 할 경우 해당 코드 뒤에 나는 아마 내가 틀렸다, 그것이 더 좋은 방법이라고 생각
public class A {
private static C c = new C();
static {
c.setAutoCreate(true);
c.setExired(false);
c.setDelay(3500);
}
public void doSomething(B b) {
b.addSometing("queue1", c);
b.addSometing("queue2", c);
b.addSometing("queue3", c);
}
}
처럼 같은 것입니다. 제게 조언 해주세요.
마지막 하나는 나던 나에게 그렇게 많은 의미를 첫 번째 장소는 여러 개의 키에 대해 하나의 값만 가질 때입니까? – SomeJavaGuy
_If_ 기본값으로 정적 인스턴스를 사용하는 경우 _immutable_이어야합니다. 그렇지 않으면 부작용이 발생할 수 있습니다. 'setAutocreate (true)'등은 불변으로 보이지 않습니다. – Thomas
'queue1'의 c 오브젝트를 변경하면 'queue2'및 'queue3'의 오브젝트도 변경됩니다. 이것이 받아 들일 수 있다면, 정적 솔루션은 괜찮아 보인다. – Jeet