현재 정규 표현식에서 일치 하는 두 개의 싱글 톤 객체가 있으며 내 객체 Pattern
는 다음과 같이 정의됩니다.
class Foobar {
private final Pattern firstPattern =
Pattern.compile("some regex");
private final Pattern secondPattern =
Pattern.compile("some other regex");
// more Patterns, etc.
private Foobar() {}
public static Foobar create() { /* singleton stuff */ }
}
그러나 나는 다른 날 누군가에게 이것이 나쁜 스타일이라고 들었고, 항상 클래스 수준에서 정의 Pattern
되어야하며 대신 다음과 같이 보입니다.
class Foobar {
private static final Pattern FIRST_PATTERN =
Pattern.compile("some regex");
private static final Pattern SECOND_PATTERN =
Pattern.compile("some other regex");
// more Patterns, etc.
private Foobar() {}
public static Foobar create() { /* singleton stuff */ }
}
이 특정 객체의 수명은 그리 길지 않으며 첫 번째 접근 방식을 사용하는 주된 이유 Pattern
는 객체가 GC에 도달 하면 s 를 붙잡는 것이 의미가 없기 때문 입니다.
어떤 제안 / 생각?