هل حجم منشئ يهم إذا كنت تستخدم انعكاس السيطرة ؟

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

  •  02-07-2019
  •  | 
  •  

سؤال

حتى لقد حصلت على 10 الكائنات من كل من 1-3 تبعيات (الذي أعتقد أنه على ما يرام بقدر فضفاضة اقتران المعنية) ولكن أيضا بعض الإعدادات التي يمكن استخدامها لتحديد السلوك (مهلة حجم النافذة ، إلخ).

الآن قبل أن أبدأ باستخدام انعكاس حاوية التحكم وأود أن إنشاء مصنع وربما حتى بسيطة ObjectSettings كائن لكل الكائنات التي يتطلب أكثر من 1 إعداد للحفاظ على حجم منشئ الموصى بها "أقل من 4" المعلمة الحجم.أنا الآن باستخدام انعكاس السيطرة الحاوية أنا فقط لا أرى كثيرا من نقطة إلى ذلك.متأكد من أنني قد تحصل على منشئ مع 7 معلمات, ولكن من يهتم ؟ انها كل شيء يجري تعبئتها من قبل اللجنة الأولمبية الدولية على أي حال.

أنا في عداد المفقودين شيء هنا أو هذا هو الأساس الصحيح ؟

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

المحلول

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

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

منشئات تلك الطبقات متفاوتة لعدد من الحجج التي تظهر في الجدول أدناه.

Number of constructor arguments    Number of classes
           0                             57
           1                             19
           2                             25
           3                              9
           4                              3
           5                              1
           6                              3
           7                              2
           8                              2

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

تلك مع 5 أو 6 الحجج كلها غير لائق إلى حد ما و يمكن استخدام بعض إعادة بيع ديون وتبسيطها.

أربعة فصول مع 7 أو 8 الحجج أمثلة ممتازة الله الكائنات.يجب أن تكون مكسورة و بعضها بالفعل على قائمة من مشكلة البقع داخل النظام.

باقي الطبقات (1 إلى 4 الحجج) هي (في الغالب) مصممة ببساطة, من السهل أن نفهم ، وتتفق مع واحد مبدأ المسؤولية.

نصائح أخرى

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

أيضا, النظر في استخدام خدمة محدد أو ثابت بوابة البنية التحتية المخاوف مثل تسجيل و ترخيص بدلا من التبعثر منشئ الحجج.

تحرير:8 ربما هي كثيرة جدا ولكن اعتقدت أنه سيكون هناك الغريب عليها.بعد النظر في لي هو آخر وأنا أتفق, 1-4 عادة ما تكون جيدة.

G'day جورج ،

أولا: ما هي تبعيات بين الكائنات ؟

الكثير من "عيسى" العلاقات ؟ الكثير من "الأحساء" العلاقات ؟

الكثير من المعجبين ؟ أو مروحة ؟

جورج الرد:"له-في الغالب أحاول متابعة تكوين على الميراث المشورة...لماذا يهمك الأمر؟"

كما انها في الغالب "الحسا" يجب أن يكون كل الحق.

من الأفضل التأكد من أن البناء (تدمير) من المكونات بشكل صحيح على الرغم لمنع التسرب في الذاكرة.

و إذا كان هذا هو في C++ ، تأكد من استخدام الظاهري destructors?

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

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

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