Java أهمية النوع enum في حماية الكود في جافا

في البداية أسلوب كتابة الكود الذي ستتعلمه من المثال التالي ستتعامل معه كثيراً عند بناء تطبيقات فيها واجهة مستخدم و عند التعامل مع قواعد البيانات حيث ستتعامل مع دوال كثيرة يمكنك تمرير أنواع محددة من القيم لها.


الآن لنفترض أننا أردنا بناء لعبة يستطيع اللاعب أن يلعبها بثلاث مستويات كالتالي:

  • مستوى سهل ( Easy ).
  • مستوى متوسط ( Normal ).
  • مستوى صعب ( Hard ).

الآن لكتابة كود هذه اللعبة و الذي قد يتألف من آلاف الأسطر البرمجية و التي ستكون موزعة على عدة ملفات جافا بدون القلق من مسألة كيف سيعرف كل مبرمج في الفريق كيف سيتم تحديد مستوى الصعوبة في اللعبة و لضمان أن تعرفوا جميعكم المستويات المتوفرة فيها و لتعلموا بنفس المنطق, فإنه من الأفضل أن يتم تعريف enum واحد إسمه Level و بداخله ثلاث ثوابت إسمها EASY و NORMAL و HARD.
و عندها سيقوم كل مبرمج بكتابة الكود بناءاً على قيمة هذه الثوابت كما فعلنا في المثال التالي.

مثال

هذا الملف مسؤول عنه مبرمج واحد و هو لتحديد المستويات المتوفرة في اللعبة.

Level.java
// وضعنا فيه 3 ثوابت Level إسمه enum هنا قمنا بتعريف
public enum Level {
    EASY,
    NORMAL,
    HARD
}
		

هذا الملف مسؤول عنه مبرمج واحد و يكتب فيه الرسائل التي يمكن أن تظهر في اللعبة على أساس مستوى اللعبة.

Messages.java
public class Messages {
    
	// لها لتحديد الرسالة التي سيتم إظهارها للمستخدم Level عند إستدعاء هذه الدالة يجب تمرير إحدى ثوابت الكلاس
	// لها فإنها ستظهر خطأ أمام المبرمج الذي قام باستدعائها مباشرةً أثناء كتباة الكود Level إذا لم يتم تمرير إحدى ثوابت الـ
    public void showPlayMessage(Level userLevel) {
        switch (userLevel)
        {
            case EASY:
                System.out.println("Play Game In Easy Mode");
                break;
            case NORMAL:
                System.out.println("Play Game In normal Mode");
                break;
            case HARD:
                System.out.println("Play Game In Hard Mode");
                break;
        }
    }

}
		

هذا الملف مسؤول عنه مبرمج واحد و هو ما سيشغل اللعبة.

Main.java
public class Main {

    public static void main(String[] args) {
        
		// لتطبع رسالة على أساسه Level.EASY مع تمرير الثابت showPlayMessage() و استدعاء الدالة Messages هنا قمنا بإنشاء كائن من الكلاس
        Messages msg = new Messages();
        msg.showPlayMessage(Level.EASY);
        
    }
    
}
		

سنحصل على النتيجة التالية عند التشغيل.

Play Game In Easy Mode

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة