الفئة C# اصطلاح التسمية:هو BaseClass أو ClassBase أو AbstractClass

StackOverflow https://stackoverflow.com/questions/826821

سؤال

ما هو النهج الموصى به تسمية قاعدة الطبقات ؟ هو التقديم نوع اسم "قاعدة"أو "مجردة"أو هل نحن فقط لاحقة مع "القاعدة"?

النظر في ما يلي:

نوع: ViewModel على سبيل المثال MainViewModel, ReportViewModel

الفئة الأساسية: BaseViewModel أو ViewModelBase أو AbstractViewModel

تنظر أيضا في:

نوع: Product على سبيل المثال VirtualProduct, ExpiringProduct

الفئة الأساسية: BaseProduct أو ProductBase أو AbstractProduct

التي تعتقد أكثر المعيار ؟

class Entity : EntityBase
{
}

أو

class Entity : BaseEntity
{
}
هل كانت مفيدة؟

المحلول

هناك أمثلة في إطار مع قاعدة لاحقة ، على سبيل المثال System.Configuration.Provider.ProviderBase, System.Web.SessionState.SessionStateStoreProviderBase.

ولكن لا يعني خلاصة جميع فئات أساسية في إطار متابعة هذه الاتفاقية (مثلا ، System.Data.Common.DbParameter, System.Data.Common.DbCommand).

شخصيا أود أن تجنب استخدام لاحقة إلا إذا أردت أن أؤكد على حقيقة أنه من فئة مجردة وشعرت أن ذلك المستخدمين من فئة قد تتوقع اسم للإشارة إلى واقع ملموس.

نصائح أخرى

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

إذا كنت تقوم بإنشاء قاعدة فصول فقط أن يكون قاعدة فئة من فئة واحدة ، مع أي غرض أو سبب بخلاف ذلك ، ربما كنت تفعل شيئا خاطئا.

إذا كنت تتحدث عن الظاهرية قاعدة الطبقات مايكروسوفت القياسية هو ClassnameBase (مثل CollectionBase.)

أعتقد أن مسألة اختيار.أنا أقول إذا كنت تقوم بإنشاء الكثير من الفئات الأساسية ثم ربما كان من الأفضل أن تذهب مع BaseClassname دائما لأنه بهذه الطريقة يمكنك دائما معرفة ما قاعدة الطبقات يمكنك البدء باستخدام طريق كتابة القاعدة على بقية مساعدة من التحسس.ماذا لو كان لديك 20 قاعدة فصول إضافة قاعدة لاحقة نسيت ماذا كان اسم قاعدة الفصل ؟ هل تريد إنشاء فئة الرسم الأول من مباراة ومعرفة ما قاعدة الطبقات المتاحة ؟ لا بأس أن اسم لهم ClassBase عندما يكون واحد أو اثنين فقط من الطبقات.

الشيء نفسه ينطبق على قرار بين GetItems و ItemsGet وظيفة.أنا أقول لهذين الله أتلست - الذهاب GetItems.متابعة الاتفاقيات :)

نحن نستخدم BaseEntity ، ولكن أعتقد أنه تفضيل الخاصة بك.كثيرا ما نرى البعض.

فقط تكون متسقة داخل السياق أن المشروع الخاص بك, مساحة أو إذا كان ذلك ممكنا ، فريق العمل الخاص بك.مختلف الاتفاقيات هي أسوأ من سيئة الاتفاقية IMHO.

شخصيا أنصح ضد إضافة كلمة القاعدة على الإطلاق.أنت لا تعرف متى سوف تضطر إلى تغيير مدونة حول و لن يكون قاعدة كائن بعد الآن.أن يقال, لقد فعلنا هذا في الماضي, نحن مسبوقة كلمة قاعدة على الجبهة.يبدو أن تدفق أفضل.

BaseEntity يشبه كثيرا حالة الإبل - strName, bseEntity.كنت أذهب EntityBase لأنه يعرف أول الموضوع الذي سوف تساعدك على تحديد انها وظيفة بشكل أسرع.

دائما أفكر وأرتب عند تسمية الأشياء.أنا حقا لا أحب النظر إلى SQL server و كل إجراء مخزن المسمى usp[شيئا].وعلى نفس المنوال لا الإفراط في الحصول على تعيين الأسماء الرائدة على وظيفة.بدلا من GetItems أو PlaceOrder ، فكر في تسمية لهم كما ItemsGet أو OrderPlace.

لذلك ، في عام ، ClassnameBase / EntityBase سيكون خيارا أفضل.

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