বর্তমানে, আমার বেশ কয়েকটি সিঙ্গলটন অবজেক্ট রয়েছে যেখানে আমি নিয়মিত প্রকাশের সাথে ম্যাচ করছি এবং আমার 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 হয়ে যাওয়ার পরে আমার কাছে ধরে রাখা কোনও অর্থবোধ করে না।
কোন পরামর্শ / চিন্তা?