سؤال

وبالإضافة إلى ذلك, هل هناك أي مزايا الأداء إلى أساليب ثابتة على سبيل المثال الطرق ؟

جئت عبر ما يلي مؤخرا: http://www.cafeaulait.org/course/week4/22.html :

عندما ينبغي أن طريقة تكون ثابتة?

  1. لا يقرأ ولا يكتب على سبيل المثال حقول
  2. مستقلة عن الدولة الكائن
  3. الطرق الرياضية التي تقبل الحجج تطبيق خوارزمية تلك الحجج و إرجاع القيمة
  4. مصنع الأساليب التي تخدم بدلا من المنشئات

وأود أن تكون مهتمة جدا في ردود الفعل من تجاوز سعة مكدس المجتمع على هذا.

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

المحلول

جعل أساليب ثابتة عندما لا تكون جزءا من الدرجة.لا عرق الصغرى أمثلية.

قد تجد أن لديك الكثير من الأساليب الخاصة التي يمكن أن تكون ثابتة ولكن يمكنك دائما الاتصال من أساليب المثال (أو بعضهم).في هذه الحالة لا يهم كثيرا.ومع ذلك, إذا كنت تريد أن تكون فعلا قادرة على اختبار التعليمات البرمجية الخاصة بك ، وربما استخدامه من أي مكان آخر ، قد ترغب في النظر في اتخاذ تلك أساليب ثابتة في مختلف غير instantiable الدرجة.

نصائح أخرى

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

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

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

@jagmal أعتقد أن كنت قد حصلت على بعض الأسلاك عبرت في مكان ما - جميع الأمثلة لكم قائمة ليست واضحة أساليب ثابتة.

أساليب ثابتة يجب التعامل تماما مع خلاصة خصائص ومفاهيم فئة - يجب أن لا تتصل سبيل المثال سمات محددة (و معظم المجمعين سوف يصيح إذا فعلوا ذلك).

للسيارة سبيل المثال ، السرعة ، kms مدفوعة بوضوح السمة ذات الصلة.نقل العتاد و سرعة الحساب ، عند النظر في مستوى السيارة ، هي السمة تعتمد - ولكن النظر في carModel فئة يرث من السيارة:عند هذه النقطة theyy يمكن أن تصبح أساليب ثابتة ، كما السمات المطلوبة (مثل قطر العجلة) يمكن تعريف الثوابت في هذا المستوى.

فقط تذكر أنه كلما كنت كتابة أسلوب ثابت ، الكتابة غير مرنة الأسلوب لا يمكن أن يكون ذلك السلوك تعديلها بسهولة جدا.

يتم كتابة التعليمات البرمجية الإجرائية ، حتى إذا كان من المنطقي أن تكون إجرائية ، ثم القيام بذلك.إذا لا ينبغي أن يكون على الأرجح أسلوب مثيل.

وهذه الفكرة مأخوذة من مقال ستيف Yegge, التي أعتقد أنها مثيرة للاهتمام ومفيدة قراءة.

الحكمة, C++ أسلوب ثابت يمكن أن يكون أسرع قليلا من غير ظاهري سبيل المثال طريقة ، كما أن هناك حاجة 'هذا' مؤشر على تمريرها إلى الأسلوب.في المقابل ، على حد سواء سوف تكون أسرع من طرق افتراضية كما لا يوجد VMT بحث الحاجة.

ولكن من المرجح أن يكون الحق في الضوضاء وخاصة لغات غير الضرورية التي تسمح المعلمة يمر إلى أن يكون الأمثل للخروج.

هنا هو ذات النقاش ، لماذا السلسلة.شكل ثابت التي من شأنها تسليط الضوء على بعض الأسباب.

شيء آخر في الاعتبار عند اتخاذ أساليب ثابتة هو أن أي شخص قادرا على رؤية الطبقة قادرة على استدعاء أسلوب ثابت.بينما عندما mehtod هو أسلوب مثيل, فقط أولئك الذين لديهم إمكانية الوصول إلى مثيل قادرة على استدعاء هذا الأسلوب.

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