سؤال

هذا السؤال لديه بالفعل إجابة هنا:

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

لديّ فئة من الدرجة ، ونقل فصول مثل Leartcastle ، و Longcastle ، و Entpassant ، والترويج والقطع مثل Pawn ، و Queen ، و Rook ، و Knight ، وما إلى ذلك ، لذا فمن الواضح أن فصول اللوحات ستؤدي إلى إنشاء فصول للقطعة ، وسوف تقوم فصول القطعة بتثبيت فصول الحركة. للحصول على تصميم جيد ، يجب أن تكون فئة الترويج للحركة متداخلة من البيدق لأن البيدق فقط يمكنه الترويج نفسه.

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

هل كانت مفيدة؟

المحلول

أعتقد أنك كرم للغاية مع فصول متداخلة. القي نظرة على هذه تصميم مبادئ توجيهية للأنواع المتداخلة.

لا تستخدم الأنواع المتداخلة إذا كان ما يلي صحيحًا:

  • يجب أن يتم إنشاء مثيل له بواسطة رمز العميل. إذا كان هناك نوع مُنشئ عام ، فربما لا ينبغي أن يكون متداخلًا. الأساس المنطقي وراء هذا المبدأ التوجيهي هو أنه إذا كان من الممكن إنشاء نوع متداخل ، فإنه يشير إلى أن النوع له مكان في المكتبة بمفرده. يمكنك إنشائها واستخدامها وتدميرها دون استخدام النوع الخارجي. لذلك ، لا ينبغي أن يكون متداخلًا. لا ينبغي إعادة استخدام النوع الداخلي على نطاق واسع خارج النوع الخارجي دون علاقة بالنوع الخارجي.
  • يتم إعلان الإشارات إلى النوع بشكل شائع في رمز العميل.

قد تنتمي القطع إلى لوحة (جمع القطعة كعضو؟) ولكن يمكن أن تتعايش بدونها. قد ترغب في إعادة استخدام الألواح بدون قطع (موضوعات وما إلى ذلك) وأيضًا إعادة استخدام القطع بدون لوحة (مواقع وما إلى ذلك).

نصائح أخرى

يمكن الوصول إلى أعضاء من القطاع الخاص من فئة الوالدين إلى طرق فئة Nexted.

يسمح Nexted Class بتخفيض التعقيد دون نطاق واسع.

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

أنا لا أتفق حقًا. فقط لأنك يستطيع فصول العش لا يعني أنك يجب أن. اسأل نفسك عن الفائدة التي تحصل عليها من تعشيش هذه الفصول.

إذا كنت حقًا تعتقد حقًا أن الفصول المتداخلة لها منطقية بالنسبة لتصميمك (انظر تحذيرات Tim Schmelter) ولكن تشعر أن حجم الملف كبير جدًا ، فإن استخدام الفئات الجزئية أمر جيد لتقسيم التعريفات المتداخلة إلى ملفاتها الخاصة. أو إذا كانت الطبقات المتداخلة صغيرة بما يكفي من تلقاء نفسها ولكن لديك عدد كبير منها ، فضع جميع الفئات المتداخلة في ملف جزئي واحد.

Parent.CS:

public partial class Parent
{
    void SomeMethod()
    {
        Nested1 n1 = new Nested1();
        Nested2 n2 = new Nested2();
    }
}

nested.cs:

public partial class Parent
{
    private class Nested1
    {

    }
    private class Nested2
    {

    }
}

الطبقات المتداخلة لها مكانها ولكن يمكن أن تكون مربكة للعمل معها. لقد وجدت صفحة ويب توضح كيفية استخدام بعض فصول .NET للحصول على مخرجات JSON Output of Facebook على http://www.virtualsecrets.com/graph-api-json-facebook html.html ما هو مثير للاهتمام هنا هو أن الفصول الدراسية متداخلة داخل الفصول ، داخل الفصول الأخرى - لذلك يمكن القيام بها ، فقط معقدة بعض الشيء. قون

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