Saud | سعود الانصاري
Saud | سعود الانصاري

@Alansaricodez

9 تغريدة 1 قراءة Jan 21, 2023
❗️هل تعلم ما هو Encapsulation في هياكل البيانات؟ هيا لنتعلم❗️
يُعرَّف Encapsulation على أنه التفاف البيانات في وحدة واحدة
تعتبر الحقيبة المدرسية من أكثر الأمثلة الحقيقية عليه، حيث انها تتمكن من حفظ الاقلام والدفاتر والعديد من الامور
التغليف Encapsulation يشبه حاجز الحماية حول قطعة من التعليمات البرمجية أو البيانات
فكر في الأمر على أنه صندوق مغلق لا يملك سوى أشخاص أو أجزاء معينة من برنامجك المفتاح لفتحه
يحافظ هذا الحاجز على الكود أو البيانات في مأمن من التغييرات العرضية أو التداخل الخارجي
بهذه الطريقة، لا يمكن الوصول إلى الكود أو البيانات أو تعديلها إلا بطرق معينة خاضعة للرقابة، مما يجعل برنامجك أكثر أمانا وأقل عرضة للأخطاء
كما أنه يسهل فهم التعليمات البرمجية الخاصة بك وصيانتها، لأن الأعمال الداخلية للمربع مخفية ولا يمكن تغييرها عن طريق الخطأ
لنشرح الامر بشكل اوضح بمثال برمجي:
تخيل انه لديك class يسمى "BankAccount" يمثل حسابا مصرفيا
يحتوي الclass على:
- "balance" (الذي يخزن الرصيد الحالي للحساب)
- "owner" (الذي يخزن اسم مالك الحساب)
بدون تغليف، يمكن الوصول إلى هذه الخصائص وتعديلها من قبل أي جزء من البرنامج
مثال: يمكن لclass أو function تغيير الرصيد أو المالك عن طريق الخطأ
باستخدام التغليف، يمكنك استخدام معدل الوصول "private" لجعل خصائص "balance" و"owner" متاحة فقط داخل فئة BankAccount نفسها
هذا يعني أن أجزاء أخرى من البرنامج لا يمكنها الوصول إلى هذه الخصائص أو تغييرها مباشرة
بدلا من ذلك، يمكنك إنشاء طرق في فئة BankAccount تعمل كبوابة لأجزاء أخرى من البرنامج للتفاعل مع الخصائص بطريقة خاضعة للرقابة
على سبيل المثال: يمكنك إنشاء طريقة "deposit" تسمح لأجزاء أخرى من البرنامج بإضافة أموال إلى الحساب عن طريق زيادة خاصية الرصيد
وطريقة "withdraw" تسمح لأجزاء أخرى من البرنامج بإزالة الأموال من الحساب عن طريق تقليل خاصية الرصيد
من خلال القيام بذلك، يمكنك التأكد من أنه لا يمكن تعديل الرصيد عن طريق الخطأ وأن الرصيد لا يمكن أن ينخفض إلى ما دون الصفر
بهذه الطريقة، يساعد التغليف في الحفاظ على الأعمال الداخلية لفئة BankAccount آمنة، ويجعل الفصل أكثر قابلية للإدارة وإعادة الاستخدام وأمانا
اتمنى ان اكون قد وضحت فكرة تغليف البيانات Encapsulation بشكل جيد
اذا تعلمت امرا جديد اعد تغريد التغريدة الاولى ليستفيد الجميع 🙏🏼

جاري تحميل الاقتراحات...