Saat ini, saya memiliki beberapa objek tunggal di mana saya melakukan pencocokan pada ekspresi reguler, dan Pattern
s saya didefinisikan seperti:
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 */ }
}
Tapi saya diberitahu oleh seseorang tempo hari bahwa ini adalah gaya yang buruk, dan Pattern
s harus selalu didefinisikan di tingkat kelas, dan terlihat seperti ini sebagai gantinya:
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 */ }
}
Masa pakai objek khusus ini tidak terlalu lama, dan alasan utama saya untuk menggunakan pendekatan pertama adalah karena tidak masuk akal bagi saya untuk berpegang pada Pattern
s begitu objek mendapat GC.
Ada saran / pemikiran?
sumber