سؤال

لدي سؤال التصميم. عند كتابة تطبيق حيث يوجد العديد من المكونات التي تشترك في بعض السمات، وتختلف في الآخرين من حيث واجهة المستخدم الرسومية (نماذج Windows) والنهاية الخلفية، كيف يمكن أن يقترب من ذلك نظريا هذا؟

على سبيل المثال، لدي تطبيق حيث لدي 4 أنواع مختلفة من المنتج. أشكال إدخال تفاصيل المنتج جميع حصة 3 حقول مختلفة. حتى الآن، من السهل - لديك فئة أساسية، ثم استخلاص النماذج الأربعة من هذه الفئة الأساسية. ومع ذلك، قل، 2 منتجات تشترك في سلوك معين وهو نفسه لكلا منهم. بالطبع، يمكن أن يكون لدي واجهة تحدد الأساليب، ثم قم بتنفيذ نماذج إدخال المنتجين 2 هذه الواجهة، ولكن نظرا لأن الواجهة لا توفر أي تطبيق افتراضي، فلن يكون من النفايات للقيام بذلك؟ نظرا لأنني يجب أن أقدم تنفيذ في كل فصل، إذا كان الأمر كذلك بالضبط، فسيتم تكرار التعليمات البرمجية.

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

لا يوجد حل صحيح

نصائح أخرى

لماذا لا تملك الطبقات التي لا علاقة لها 2 مستخلصة مباشرة من فئة قاعدةك، ثم إنشاء فئة جديدة مع الوظائف المشتركة وتستمد من الفئة الأساسية ولها ترث الفئتين المتبقية من تلك الفئة الجديدة؟

BaseClass
CommonClass : BaseClass
ClassA : BaseClass
ClassB : BaseClass
ClassC : CommonClass
ClassD : CommonClass

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top