現在、正規表現でマッチングを行っているシングルトンオブジェクトがいくつかあり、私Pattern
のsは次のように定義されています。
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
sは常にクラスレベルで定義されるべきであり、代わりにこのように見えると誰かに言われました:
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 を保持する意味がないためです。
提案/考えはありますか?