Derzeit habe ich einige Singleton- Objekte, bei denen ich reguläre Ausdrücke abgleichen kann, und meine Patterns 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 Patterns 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 Patterns festzuhalten, sobald das Objekt GC-fähig ist.
Anregungen / Gedanken?