Derzeit habe ich einige Singleton- Objekte, bei denen ich reguläre Ausdrücke abgleichen kann, und meine Pattern
s sind wie folgt definiert:
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 */ }
}
Aber mir wurde neulich von jemandem gesagt, dass dies ein schlechter Stil ist und dass Pattern
s immer auf Klassenebene definiert werden sollte und stattdessen ungefähr so aussehen sollte:
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 */ }
}
Die Lebensdauer dieses bestimmten Objekts ist nicht so lang, und mein Hauptgrund für die Verwendung des ersten Ansatzes ist, dass es für mich keinen Sinn macht, am Pattern
s festzuhalten, sobald das Objekt GC-fähig ist.
Anregungen / Gedanken?
quelle