الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أسئلة في الـOOP " abstarct + iInterface "

بدأه aohammed في 8 أكتوبر 2010 · 2 رد · 751 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

أنا بدأت بتعلم مبادئ الـOOP في لغة C#

و معرفتي بها كانت في C++ الوراثة و التحميل الزائد للعمليات فقط

أثناء انتقالي للC# أريد أن أسألكم :

أنا تعلمت استخدام الـabstract لكن ما فائدته ؟ " يعني شو اللي بقدر أعمل فيو , + ما بقدر أعملو بالطريقة العادية :| " و متى لازم أستعملو و هل الـoverrride مخصص فقط منشان الوراثة من abstarct :| !? أم في إلو استخدامات أخرى ؟

+

أنا تعلمت استخدام الـinterface بس يعني ما شفت أي فائدة " بالعكس سلبية انو ما بقدر أحط فيو متغيرات :| بس لازم دوال " + لما استفسرت قالولي انو الـC# ما بتقدر فيها تورث كلاسين لكلاس , بينما هالشي موجود في C++لهالسبب وضعوا مفهوم الواجهة منشان الوراثة من أكثر من كلاس فهل هالكلام صحيح ؟

و شكرا ً لكم

#2

الـabstract هو كلاس تستخدمه كأساس موحد لمجموعة من الكلاسات، ولكن لا تستخدمه وحده. يمكنك مثلاً عمل abstract يمثل "شخص". ثم تستخدمه لبناء "محمود" و "سالم" و "عبد العزيز". وهكذا يكونوا جميعاً لديهم properties موحدة مثل "اسم" و "تاريخ ولادة".

الـinterface من جهة أخرى يوحد مجموعة من الدوال للكلاسات التي تستخدمه. ويوحد شكلها الخارجي فقط (المداخل والمخارج) ويترك ما بداخلة لكل كلاس بحسب احتياجه. نحتاج هذا الموضوع عندما يكون لدينا كلاس يتعامل مع الكلاسات الأخرى وينادي الدوال الموجود بداخلها، لذا يجب أن يكون شكل هذه الدوال موحد. لنقل مثلاً أن لدينا كلاس يقوم بحساب الرواتب، وينادي دالة داخل كل كلاس موظف يقوم باسترجاع قيمة الراتب الشهري. في كلاس "محمود" قد تكون هذه الدالة تعيد رقم ثابت وخلاص. ولكن في كلاس "سالم" يقوم بحساب خارج دوام وفي كلاس "عبد العزيز" يقوم بحساب عمولات بيع. وهكذا.

اقرأ في ما يسمى بـDesign Patterns و هي أنماط شائعة تستخدم بكثرة في البرمجة وتعتمد كثيرا على موضوع الـabstract و الـinterface

الـinterface موجود أيضاً في الـ++C. عدم وجود التوارث المتعدد هو أن العديد من المصممين الحديثين يعتبرون أن هذه العملية تعقد التصميم أكثر من اللازم وأن استخدام الـinterface هو بديل كافٍ.

#3

ياالله ................ شكرا كتير على الشرح المميز السهل .. ربنا يفتح عليك من بركاته ..

مواضيع مشابهة