قبل ذلك دعنا نشرح لماذا نستخدم الوراثة
1. Code reuse تقليل الكود المكرر
2.Declare interface
يشترك الكلاس الفرعي(child class) في نفس interface مع الكلاس الرئيسي(parent class) ويمكن أن يتفاعل مع الكلاس الرئيسي ، ويسمى مبدأ استبدال Liskov
1. Code reuse تقليل الكود المكرر
2.Declare interface
يشترك الكلاس الفرعي(child class) في نفس interface مع الكلاس الرئيسي(parent class) ويمكن أن يتفاعل مع الكلاس الرئيسي ، ويسمى مبدأ استبدال Liskov
3. Introduce abstract class concept for hierarchy
يمكن أن تساعد في تسهيل فهم النظام.
مشكلة الوراثة هي أنه على الرغم من أنها تنجز المهمة ، إلا أنها تؤديها أحيانًا بشكل سيء للغاية.
يمكن أن تساعد في تسهيل فهم النظام.
مشكلة الوراثة هي أنه على الرغم من أنها تنجز المهمة ، إلا أنها تؤديها أحيانًا بشكل سيء للغاية.
ما الجانب المظلم ل الوراثة ؟
1. Yo-Yo problem
مشكلة قابلية القراءة ، من الصعب جدًا فهم ما يفعله كلاس يستخدك الوراثة ,
من دون فتح الكلاس الأصل father.
فالمشكلة هي القفز ذهابًا وإيابًا من الكلاس ب father و child ، لذلك تسمى مشكلة Yo-Yo.
1. Yo-Yo problem
مشكلة قابلية القراءة ، من الصعب جدًا فهم ما يفعله كلاس يستخدك الوراثة ,
من دون فتح الكلاس الأصل father.
فالمشكلة هي القفز ذهابًا وإيابًا من الكلاس ب father و child ، لذلك تسمى مشكلة Yo-Yo.
2. Break encapsulation
كسر ميزة Encapsulation فمن المميزاتها :
*إخفاء البيانات غير ضرورية
*المرونة: يمكن للمبرمج جعل البيانات للقراءة فقط أو للكتابة فقط.
* قابلية إعادة الاستخدام: تتيح للمبرمجين استخدام الكود الموجود مرارًا وتكرارًا بطريقة فعالة.
* سهولة الاختبار الكود.
كسر ميزة Encapsulation فمن المميزاتها :
*إخفاء البيانات غير ضرورية
*المرونة: يمكن للمبرمج جعل البيانات للقراءة فقط أو للكتابة فقط.
* قابلية إعادة الاستخدام: تتيح للمبرمجين استخدام الكود الموجود مرارًا وتكرارًا بطريقة فعالة.
* سهولة الاختبار الكود.
3. Inheritance unnecessary methods
يحتاج الوراثة ، وفقًا لقاعدة (substitution)الاستبدال ، إلى وراثة جميع methods وattributes من الكلاس الاب ، حتى لو لم يتم استخدامها أو عدم الحاجة إليها في الكلاس child ، مما يخلق تعقيدًا أكثر مما يحتاجه الكلاس child.
يحتاج الوراثة ، وفقًا لقاعدة (substitution)الاستبدال ، إلى وراثة جميع methods وattributes من الكلاس الاب ، حتى لو لم يتم استخدامها أو عدم الحاجة إليها في الكلاس child ، مما يخلق تعقيدًا أكثر مما يحتاجه الكلاس child.
4. Flexibility
من الصعب إعادة استخدام جزء فقط من الكود بدون تضمين جميع methods وattributes
من الصعب إعادة استخدام جزء فقط من الكود بدون تضمين جميع methods وattributes
@rattibha Compile !
جاري تحميل الاقتراحات...