اذهب إلى المحتوى
  • 0

شرح Encapsulation

Talal Alharbi2

السؤال

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

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

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 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 "

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...