वर्तमान में, मेरे पास कुछ सिंगलटन ऑब्जेक्ट्स हैं, जहाँ मैं नियमित अभिव्यक्तियों से मेल खा रहा हूँ, और मेरे Pattern
एस को इस तरह परिभाषित किया गया है:
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
जाना चाहिए , और इसके बजाय कुछ देखना चाहिए:
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
एक बार ऑब्जेक्ट को GC'd मिल जाता है।
कोई सुझाव / विचार?