يعد الـ constructor الثابت (Constant Constructor) في لغة دارت (Dart) أحد أساليب البرمجة الكائنية OOP التي تساعد في إنشاء كائن ثابت. يتم تعريف الـ Constant Constructor باستخدام الكلمة المفتاحية “const”. يتم استخدام الـ Constant Constructor لإنشاء كائن لا يمكن تغيير قيمته. ومن فوائده أنه يتم تحسين أداء البرنامج باستخدام الـ Constant Constructor.
فهم قواعد الـ Constant Constructor في دارت:
هناك قواعد يجب مراعاتها عند تعريف الـ Constant Constructor في دارت:
- يجب أن تكون جميع خصائص الكلاس final.
- لا يجب أن يحتوي الـ Constant Constructor على جسم (body).
- يتم تهيئة الكائن الذي يحتوي على الconstructor الثابت باستخدام الكلمة المفتاحية const.
أمثلة على الـ Constant Constructor في دارت:
لنقدم بعض الأمثلة التوضيحية لاستخدام الconstructor الثابت في دارت:
المثال 1: الـ Constant Constructor في دارت
في هذا المثال، لدينا كلاس يسمى “Point” ويحتوي على خاصيتين من نوع final هما: x و y. يحتوي الكلاس أيضًا على constructor ثابت يهيئ الخاصيتين. كما يحتوي الكلاس على دالة تسمى “display” تقوم بطباعة قيم الخاصيتين.
class Point { final int x; final int y; const Point(this.x, this.y); } void main() { Point p1 = const Point(1, 2); print("The p1 hash code is: ${p1.hashCode}"); Point p2 = const Point(1, 2); print("The p2 hash code is: ${p2.hashCode}"); Point p3 = Point(2, 2); print("The p3 hash code is: ${p3.hashCode}"); Point p4 = Point(2, 2); print("The p4 hash code is: ${p4.hashCode}"); }
نتيجة الكود:
The p1 hash code is: 918939239 The p2 hash code is: 918939239 The p3 hash code is: 745146896 The p4 hash code is: 225789186
المثال 2: الـ Constant Constructor في دارت
في هذا المثال، لدينا كلاس يسمى “Student” ويحتوي على ثلاث خصائص: name و age و rollNumber. يحتوي الكلاس على constructor ثابت واحد يقوم بتهيئة قيم الخصائص الثلاث. يتم إنشاء كائن من الكلاس Student يسمى “student” ويتم طباعة قيم الخصائص الثلاث.
class Student { final String? name; final int? age; final int? rollNumber; const Student({this.name, this.age, this.rollNumber}); } void main() { const Student student = Student(name: "John", age: 20, rollNumber: 1); print("Name: ${student.name}"); print("Age: ${student.age}"); print("Roll Number: ${student.rollNumber}"); }
نتيجة الكود:
Name: John Age: 20 Roll Number: 1
المثال 3: باستخدام المعاملات المسماة في دارت
في هذا المثال، لدينا كلاس يسمى “Car” ويحتوي على ثلاث خصائص: name و model و prize. يحتوي الكلاس على constructor واحد يقوم بتهيئة قيم الخصائص الثلاث. يتم إنشاء كائن من الكلاس Car يسمى “car” ويتم طباعة قيم الخصائص الثلاث.
class Car { final String? name; final String? model; final int? prize; const Car({this.name, this.model, this.prize}); } void main() { const Car car = Car(name: "BMW", model: "X5", prize: 50000); print("Name: ${car.name}"); print("Model: ${car.model}"); print("Prize: ${car.prize}"); }
نتيجة الكود:
Name: BMW Model: X5 Prize: 50000
تحدي لك:
قم بإنشاء كلاس يسمى “Customer” ويحتوي على ثلاث خصائص: name و age و phone. يجب أن يحتوي الكلاس على constructor ثابت واحد يقوم بتهيئة قيم الخصائص الثلاث. قم بإنشاء كائن من الكلاس Customer واطبع قيم الخصائص الثلاث.
يعد الـ Constant Constructor في لغة دارت أداة هامة في البرمجة الكائنية OOP. يساعد في إنشاء كائنات ثابتة لا يمكن تغيير قيمها. من خلال اتباع قواعد تعريف الconstructor الثابت واستخدامه بشكل صحيح، يمكننا تحسين أداء برامجنا في لغة دارت.