Şu anda, düzenli ifadelerde eşleştirme yaptığım tekli nesnelerim var ve s'lerPattern
şöyle tanımlanıyor:
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 */ }
}
Ama geçen gün birisi tarafından bunun kötü bir stil olduğu ve her zaman sınıf düzeyinde tanımlanması ve bunun yerine şöyle görünmesi Pattern
gerektiği söylendi :
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 */ }
}
Bu özel nesnenin ömrü o kadar uzun değil ve ilk yaklaşımı kullanmamın temel nedeni Pattern
, nesne GC'ye ulaştığında s'ye tutunmamın mantıklı olmaması .
Herhangi bir öneriniz / düşünceniz var mı?