سؤال

أو أنه من الأفضل استخدام آخر نمط التصميم ؟

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

المحلول

ورد على سؤال مماثل قبل بضعة أيام هنا ساخرا المفرد.المشاركة الأصلية هو C#.Net وفيما يتعلق ساخرا المفرد سلوك ، ولكن يجب أن لا تزال سارية.

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

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

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

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

ويساعد هذا الأمل!


المفرد != الجمهور ثابت الدرجة, بل المفرد == مثيل واحد

نصائح أخرى

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

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

أنا باستخدام النمط التالي عندما أكتب ثابت على أساس وحدانية أستطيع وهمية.رمز Java, ولكن أعتقد أنك سوف تحصل على فكرة.المشكلة الرئيسية مع هذا النهج هو أن لديك للاسترخاء منشئ الحزمة المحمية (وهو شيء الهزائم الحقيقية المفرد).كملاحظة جانبية - قانون ينطبق على القدرة على السخرية "ثابت" رمز بالضرورة ببساطة الاتصال عليه

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

ونعتبر أن في من Smalltalk (حيث الكثير من هذه الأنماط نشأت)، الصواب والخطأ كلاهما فعال سنغلتونس:)

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

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

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