Saat ini, saya memiliki beberapa objek tunggal di mana saya melakukan pencocokan pada ekspresi reguler, dan Patterns 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 Patterns 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 Patterns begitu objek mendapat GC.
Ada saran / pemikiran?