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