English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يحد من إنشاء النماذج لفئة واحدة فقط نموذج INSTANCE هو حقل عام ثابت ونهائي يمثل نموذج الفئة. يمكننا استخدام EnumSingleton.INSTANCE للحصول على نموذج الفئة، ولكن إذا أردنا تغيير التنفيذ، من الأفضل تضمينه في getter.
هناك بعض الأسباب التي يمكن استخدامها لاستخدام الحسابات في Java
يضمن وجود نموذج واحد فقط (حتى لو حاولت إنشاء أكثر من نموذج بواسطة الت反射).
آمن من حيث التوازي
الترميز
public enum Singleton { INSTANCE; private singleton() { } }
public enum EnumSingleton { INSTANCE; private String name; private int age; private void build(SingletonBuilder builder) { this.name = builder.name; this.age = builder.age; } public static EnumSingleton getSingleton() { // static getter return INSTANCE; } public void print() { System.out.println("Name: " + name + ", age: " + age); } public static class SingletonBuilder { private final String name; private int age; private SingletonBuilder() { name = null; } public SingletonBuilder(String name) { this.name = name; } public SingletonBuilder age(int age) { this.age = age; return this; } public void build() {}} EnumSingleton.INSTANCE.build(this); } } public static void main(String[] args) { new SingletonBuilder("Adithya").age(25).build(); EnumSingleton.getSingleton().print(); } }
نتائج الإخراج
الاسم: Adithya، العمر: 25