السلام عليكم ورحمة الله وبركاتة ,, اخواني انا حاولت افهم التغليف وفهمت كيفية عمله لكن للان مافهمت لماذا نستخدمه ؟

يعني المستخدم للتطبيق بيفيده بإيش عملية التغليف ؟ 

اتمنى اجد الشرح الكافي ,, وجزاكم الله خيراً

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

أهلًا بك،

بالنسبة للمستخدم النهائي للتطبيق، لن يشعر بالفرق إن استخدم المبرمج Encapsulation أو لم يستخدم، فلا تظهر فائدة Encapsulation بالنسبة لمستخدمي التطبيق وإنما تظهر الفائدة الكبرى بين المبرمجين أنفسهم مثلًا كانو في فريق عمل أو بدأ أحدهم الشيفرات وأكمل كتابتها الأخر فهنا تظهر فائدة Encapsulation والتي منها:

  • إخفاء البيانات: يمكن أن يوفر للمبرمج إخفاء الClasses الداخلية وبالتالي يتاح لباقي المبرمجين الوصول إلى الشيفرة المطلوبة فقط وبدون معرفة كيفية تعريف المتغيرات.
  • دوال Getter و Setter: لأن متغرات Private لا يتوصل لها إلا داخل Class فتوفر هذه الدوال المعرفة Public الوصول إلى هذه المتغيرات.
  • المرونة: يمكن للمبرمج جعل البيانات للقراءة فقط أو للكتابة فقط. كما أن Encapsulation يحسن الصيانة والمرونة في الكود.
  • قابلية إعادة الاستخدام: تتيح للمبرمجين استخدام الكود الموجود مرارًا وتكرارًا بطريقة فعالة.
  • اختبار الكود: سهولة الاختبار يصبح سهلاً.

يمكنك الإستفادة بأمثلة من خلال موسوعة حسوب

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0
بتاريخ 21 ساعات قال Entesar ElBanna:

أهلًا بك،

بالنسبة للمستخدم النهائي للتطبيق، لن يشعر بالفرق إن استخدم المبرمج Encapsulation أو لم يستخدم، فلا تظهر فائدة Encapsulation بالنسبة لمستخدمي التطبيق وإنما تظهر الفائدة الكبرى بين المبرمجين أنفسهم مثلًا كانو في فريق عمل أو بدأ أحدهم الشيفرات وأكمل كتابتها الأخر فهنا تظهر فائدة Encapsulation والتي منها:

  • إخفاء البيانات: يمكن أن يوفر للمبرمج إخفاء الClasses الداخلية وبالتالي يتاح لباقي المبرمجين الوصول إلى الشيفرة المطلوبة فقط وبدون معرفة كيفية تعريف المتغيرات.
  • دوال Getter و Setter: لأن متغرات Private لا يتوصل لها إلا داخل Class فتوفر هذه الدوال المعرفة Public الوصول إلى هذه المتغيرات.
  • المرونة: يمكن للمبرمج جعل البيانات للقراءة فقط أو للكتابة فقط. كما أن Encapsulation يحسن الصيانة والمرونة في الكود.
  • قابلية إعادة الاستخدام: تتيح للمبرمجين استخدام الكود الموجود مرارًا وتكرارًا بطريقة فعالة.
  • اختبار الكود: سهولة الاختبار يصبح سهلاً.

يمكنك الإستفادة بأمثلة من خلال موسوعة حسوب

لكن حسب بحثي انها تحمي التطبيق ايضاً من العبث بالتطبيق النهائي ؟!

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

صحيح، إذا انتقلت شيفرة التطبيق لمبرمجين أخرين وقتها يكون محمي من أن يعبثو فيه,, لأنهم يستطيعوا التغيير على شيفرات خارجية والأساسيات تكون موجودة مغلفة 

ممكن أيضًا بالنسبة للحماية.. أن يكون القصد حماية التطبيق في حال تم اختراقه، وقتها يصعب على المخترق الوصول للبيانات المغلفة.. فقط يستطيع الوصول لدوال عامة لا تفيده في جلب معلومات حول التطبيق.. أما بالنسبة للمستخدم فكيف يمكن أن يعبث بالتطبيق وما أمامه عبارة عن واجهات وازرار فقط

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

السلام عليكم، 

لدي اضافة الى الشرح الذي تم تقديمه، وهو أن التغليف يلعب دورا بالنسبة لمستخدمي التطبيق، لأنه يسرع من عمل وتنفيذ البرنامج، وذلك أن الوصول إلى المتغيرات المغلفة باستخدام الطرق setters and getters يكون سريع جدا مقارنة بالوصول إليهم مباشرة وعدم تغليفهم، لذلك ينصح باستخدام التغليف دائما. ويمكنك التحقق من اجابتي عن طريق عمل اختبار بسيط لمقارنة وقت تنفيذ البرنامج باستخدام كلا الطريقتين.

والسلام عليكم. 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

عملية التغليف "Encapsulation " خاصة بالمبرمجين فقط اثناء برمجة التطبيقات والتي تتم عن طريق Data Access Modifire والتي بدورها تتحكم في اظهار او اخفاء البيانات والدوال المستخدمة في بناء التطبيقات ولا يوجد أي استخدام أو علاقة بين المستخدم النهائي وعملية التغليف "Encapsulation "

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن