سؤال

كيف يمكنك تنظيم امتداد الطرق ؟ أقول إذا كان امتداد الكائن فئة سلسلة الدرجة أنا يميل إلى فصل هذه طرق الإرشاد في الطبقات أي:

public class ObjectExtensions
{
    ...
}

public class StringExtensions
{
    ...
}

أنا جعل هذا معقد جدا أو هل هذا منطقي ؟

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

المحلول

لقد تنظيم أساليب الإرشاد باستخدام مزيج من مساحة الاسم و اسم الفئة و هو بنفس الطريقة التي تصف في السؤال.

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

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

وأخيرا تسمية يذهب على طول الخطوط التي قمت بتحديدها في السؤال - نوع الاسم مع "ملحقات" كما لاحقة.هذا ينتج فئة التسلسل الهرمي مثل هذا:

  • إطار (مساحة)
    • إطار.ObjectExtensions (الطبقة)
    • إطار.StringExtensions (الطبقة)
    • إطار.ويب (مساحة)
      • إطار.ويب.HttpApplicationExtensions (الطبقة)

فائدة عن صيانة المنظور ، فإنه من السهل حقا في وقت لاحق أن أجد طرق الإرشاد على نوع معين.

نصائح أخرى

هناك نوعان من الطرق التي تنظم على امتداد الطرق التي يمكنني استخدامها ،

1) إذا كان التمديد هو محدد في المشروع أنا أعمل على ، ثم أضعها في نفس المشروع/الجمعية ، ولكن في مساحة الاسم.

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

أهم شيء أن نأخذ في الاعتبار هو: ما هو نطاق والتي سوف تستخدم هذه ؟ تنظيم لهم ليس من الصعب إذا كنت فقط نأخذ هذا في الاعتبار.

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