В даний час у мене є кілька однотонних об'єктів, де я співставляю регулярні вирази, і мої 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
s, як тільки об’єкт отримує GC'd.
Будь-які пропозиції / думки?