سؤال

أنا في حيرة من أمري بشأن هذه الشروط الثلاثة.

أفهم ذلك:

  • في نمط المصنع ، لا يوجد مصنع ملموس. يقوم المصنع ببناء الكائنات الجديدة وفقًا للمعلمات.

  • في نمط المصنع التجريدي ، هناك العديد من المصانع الخرسانية. يتعين على العميل إنشاء مصانع ملموسة مختلفة بشكل صريح.

هل هذا صحيح؟

ما هي الاختلافات الأخرى؟

علاوة على ذلك ، ما هو نمط طريقة المصنع؟ هل هو نفس نمط المصنع؟

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

المحلول

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

طريقة المصنع

في "طريقة المصنع" ، يكون للكائن طريقة مسؤولة عن إنشاء كائن آخر. مثال شائع هو كائن مستند JavaScript وإنشاء HtmlElement أشياء:

var newDiv = document.createElement('div');

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

مصنع مجردة

يهدف مصنع مجردة إلى "توفير واجهة لإنشاء عائلات الأشياء ذات الصلة أو التابعة دون تحديد فصول ملموسة.

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

يمكن أن يكون لهذا الفئة طرق createWindow, createButton, createScrollBar بدوره ، سيتم تعريف العديد من التطبيقات لإنتاج عناصر واجهة مستخدم أو AWT أو أي شيء آخر. بعد ذلك ، بناءً على التكوين ، سيتم إنشاء إنشاء فئة مختلفة.

إضافة - مصنع ملموس

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

لذلك ، عندما أكتب تعميم خاص بي document الذي يتجاوز createElement, ، الفصل الذي أنشئه هو مصنع ملموس.

وبالمثل ، بينما WidgetFactory سيكون مصنعا مجردا ، SwingWidgetFactory سيكون مصنعا ملموسا.

نصائح أخرى

أفضل طريقة للتعلم هي بالتأكيد القراءة. تفقد هذا: http://www.dofactory.com/patterns/patterns.aspx.

تأجيل طريقة المصنع للكائنات إلى الفئات الفرعية. هذا يعني أنه يتم تعريف فئة/واجهة أساسية ، لكن رمز العميل لا ينشئ كائنًا مقابل هذه الواجهة. يتم ترك الفئات الفرعية التي تنفذ الواجهة لتهيئة كائن.

يمكن العثور على المصانع المجردة هنا: http://www.dofactory.com/patterns/patternabstract.aspx#_self2

هناك بالفعل معلومات جيدة عن هذا الموقع. أفضل شيء التالي هو التحقق من الويكي:

http://en.wikipedia.org/wiki/design_pattern_٪28computer_science٪29

http://javadesign-paterns.blogspot.com/ هو مكان جيد لتعلم أنماط التصميم

نمط المصنع: إرجاع كائنات عائلة واحدة
مصنع مجردة: إرجاع الأشياء لأكثر من عائلة واحدة.

لذلك قد تقول أن المصنع المجردة يحتوي على أكثر من مصنع واحد

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