Ş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 Patterngerektiğ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ı?