سؤال

هل يستحب تعيين متغيرات عضو من الفئة الأساسية لحمايتها، بحيث فرعية يمكن الوصول إلى هذه المتغيرات؟ أم أنها أكثر الموصى بها لضبط المتغيرات عضو إلى القطاع الخاص، والسماح للفئات فرعية الحصول على أو تعيين varible التي كتبها حاصل على واضعي؟

وإذا فمن المستحسن استخدام حاصل على واضعي طريقة، والمتغيرات عندما محمية المستخدمة؟

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

المحلول

وهذا هو غاية <م> مماثلة هذا السؤال ، حول ما إذا كان الوصول إلى المعلومات ضمن نفس الفئة عبر خصائص أو الوصول المباشر. انها ربما تستحق القراءة عن تلك الإجابات أيضا.

وشخصيا، أنا لا أحب أي المجالات لتكون غير والخاص باستثناء عرضية من الحقول للقراءة فقط ثابتة مع القيم الثابتة (سواء CONST أو لا). بالنسبة لي، والخصائص فقط تعطي درجة أفضل من التغليف. كيف يتم تخزين البيانات هو التنفيذ قرار، وليس <م> API قرار (على عكس خصائص). لماذا يجب أن الطبقة فو المستمدة من الرعاية الطبقة شريط حول <م> التنفيذ من الدرجة بار؟

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

ومع خصائص تنفذ تلقائيا في C # 3.0، انها أسهل من أي وقت مضى لتحويل الحقول إلى خصائص. وهناك سبب القليل جدا <م> لا للقيام بذلك.

نصائح أخرى

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

وأنا يجب أن نتفق مع جون.

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

ولكن مجموعة / الحصول على هو السبيل إلى القيام به لوضع آخر.

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

وعادة، يجب أن علامة عليها أنها خاصة والذهاب للحاصل / اضعي.

وهكذا جوابي هو: الوصول المباشر للحقول المستخدمة بكثرة حاصل / اضعي خلاف ذلك. استخدام الحس السليم.

تعديل: فعلت بعض التنميط وعلى ما يبدو حتى في وضع الإصدار، يمكن أن يكون هناك ما يصل الفرق سرعة 20٪ بين الحقول وخصائص عرض حالتي اختبار هنا: <لأ href = "HTTP: //pastebin.com/m5a4d1597 "يختلط =" noreferrer نوفولو "> http://pastebin.com/m5a4d1597

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