إذا كنت تستخدم getters و setters ، كيف يجب أن تسمي متغيرات الأعضاء الخاص؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

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

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

المحلول

هذا سؤال شخصي تمامًا. ليس هناك طريقة أفضل.

طريقة واحدة هي:

private int _x;
public get x():int { return _x; }
public set x(int val):void { _x = val; }

آخر هو:

private int x;
public get X():int { return x; }
public set X(int val):void { x = val; }

لا هو الجواب الصحيح. كل لديه مزايا وعيوب النمط. اختر الشخص الذي تفضله وتطبيقه باستمرار.

نصائح أخرى

أنا أحب الحقول البادئة مع السطح السفلي ، كما ذكر آخرون.

private int _x;

أعتقد أن هذا يتجاوز التفضيل الشخصي بشكل مستقيم (كما قال ديفيد أرنو في هذا الموضوع). أعتقد أن هناك بعض الأسباب الموضوعية الحقيقية للقيام بذلك:

  1. هذا يعني أنك تجنب الاضطرار إلى كتابة "this.x = x" للواجبات (خاصة في المستوطنين والمشاركين).
  2. يميز حقائبك عن المتغيرات/الحجج المحلية. من المهم القيام بذلك: الحقول أكثر صعوبة في التعامل معها من السكان المحليين ، لأن نطاقها أوسع / العمر أطول. إضافة إلى الشخصية الإضافية هي جزء من علامة تحذير عقلي للمبرمجين.
  3. في بعض IDES ، سيؤدي السطح السفلي إلى إكمال تلقائي لفرز الحقول إلى أعلى قائمة الاقتراحات. هذا يجعل من السهل رؤية جميع الحقول للفصل في كتلة واحدة. هذا بدوره يمكن أن يكون مفيدًا ؛ في الفصول الكبيرة ، قد لا تكون قادرًا على رؤية الحقول (عادة ما يتم تعريفها في الجزء العلوي من الفصل) على نفس الشاشة مثل الرمز الذي تعمل عليه. فرزها إلى الأعلى يعطي مرجعًا مفيدًا.

(هذه الاتفاقيات مخصصة لـ Java ، ولكن توجد لغات مماثلة للغات الأخرى)

تبدو هذه الأشياء صغيرة ولكن انتشارها يجعل حياتي أسهل عندما أقوم بالترميز.

في Java هناك هذا. في نفس السياق ، يفهم IDEs والمحررين المتغيرات الأعضاء ومنحهم تسليط الضوء بشكل خاص ، بحيث يمكنك حقًا رؤيته باستخدام أسماء خاصة.

في لغة حساسة للحالة ، أستخدمها فقط:

private int myValue;

public int MyValue
{
    get { return myValue; }
}

وإلا فإنني سأستخدم السطح السفلي

Private _myValue As Integer

Public ReadOnly Property MyValue As Integer
    Get
        Return _myValue
    End Get
End Property

There are almost as many different ways of doing this as there are programmers doing this, but some of the more popular ways include (for a property Foo):

  • mFoo
  • m_foo
  • _foo
  • foo

I like writing "this.x = x". It's very clear to me. Plus, when using Eclipse, you can have it automatically generate your getters/setters this way.

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