سؤال

وفق الشمس و MSDN. إنه نمط التصميم.

وفق ويكيبيديا إنه نمط معماري

بالمقارنة مع أنماط التصميم، تكون الأنماط المعمارية أكبر في الحجم. (ويكيبيديا - النمط المعماري)

أو إنه نمط معماري يحتوي أيضا على نمط تصميم؟

اي واحد هو الصحيح ؟

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

المحلول

MVC هو أكثر من نمط معماري، ولكن ليس للتطبيق الكامل. تتعلق MVC في الغالب بطبقة UI / التفاعل من تطبيق. ما زلت ستحتاج إلى طبقة منطق الأعمال، وربما بعض طبقة الخدمة وطبقة الوصول إلى البيانات. وهذا هو، إذا كنت في نهج N-tier.

نصائح أخرى

لماذا واحد منهم يجب أن يكون صحيحا؟

كلاهما يمكن أن يكون صحيحا، وهذا يتوقف على وجهة النظر.

يمكن أن يكون MVC نمطا معماريا، إذا كان يشكل أساس بنية التطبيق.

يمكن أن ينظر إليه أيضا على أنه مجرد نمط تصميم، وهناك فكرة مجردة تنطبق على أي تطبيق.

أنماط التصميم قل كيفية كتابة التعليمات البرمجية بشكل فعال (النظر مقاييس الكود).

عدد قليل من الفوائد:

  1. الحفاظ بسهولة
  2. ارتفاع قابلية الاستخدام
  3. قابل للقراءة بسبب التجريدات

الأنماط المعمارية قل كيفية استخدام الموارد بفعالية.

  1. يمكن تنفيذ المهام الموازية مثل المبرمجين ومصممي الرسومات العمل موازية.
  2. يمكن استخدام تقنيات متعددة لبناء برنامج.

في MVC، أ). يمكن إنشاء طرق العرض باستخدام قوالب JavaScript وأيضا يمكن استخدام HTML ب). يمكن كتابة وحدات التحكم .NET Framework و ج). يمكن كتابة النماذج في Java - قد يتم استخدام خدمة Java التي ترجع فقط بيانات JSON.

بينما في نمط التصميم، نمط لا يتم تنفيذها في أي قانون يمكن كتابةه في تقنيات متعددة مثل فئة الإدارة في جافا وفئة العميل في C #، فئة الشركاء في PHP ونمط المصنع في Ruby :)؛ هممم..سو سهلة؟ :)

أعلم أنه تم الرد عليه منذ لحظة، لكن لم يذكر أحد حتى الآن الكتاب الذي جعل MVC مشهورا: بنية البرمجيات الموجهة بالنمط (POSA)، من قبل Buschmann، وآخرون نشرت في عام 1996. وإن لم يكن الأمر قراءا على نطاق واسع كما كتاب أنماط التصميم من قبل Gamma، et al، Posa هي واحدة من الكتب المؤسسية التي تستخدمها مجتمع الأنماط.

أوه، ويحدد بوسا بشكل واضح جدا MVC كأنما نمط معماري. حدستي هي أن السيدة والشمس هي مجرد قذرة وتدعو كل نمط "نمط التصميم".

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

ذكرت MVC دائما وتقديمها باسم / في طبقة العرض التقديمي في كتب بنية البرامج.

قراءة هذه الكتب:

  1. مهندسين حلول Microsoft.net للمؤسسة (مايكروسوفت الصحافة)

  2. أنماط تصميم ASP.NET المهنية (WROX)

  3. أنماط حلول Enterpise باستخدام Microsoft.NET (مايكروسوفت الصحافة)

  4. أنماط تطبيقات تطبيق المؤسسة (أديسون ويسلي)

  5. دليل عملي بنية المشاريع (برنتيس هول)

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

جوش سميث

تشمل أنماط التصميم داخل النموذج / العرض / وحدة التحكم (MVC) ثلاثية الدروس قد لا تقتصر على:

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

  • مركب, ، والتي تتيح لنا علاج كائن مجموعة (عرض مركب) تماما مثلما نعامل واحدة من كائناتها الفردية (عرض المكونات).

  • إستراتيجية, ، حيث يستخدم الرأي مثيل فئة فرعية وحدة تحكم لتنفيذ استراتيجية استجابة معينة؛ لتنفيذ استراتيجية مختلفة، ما عليك سوى استبدال المثيل مع نوع مختلف من وحدة التحكم.

  • طريقة المصنع, ، تحديد فئة وحدة التحكم الافتراضية لعرض.

  • ديكور, ، إضافة التمرير إلى طريقة عرض.


مرجع

  • الصفحات من 4 إلى 6 (أنماط تصميم القسم 1.2 في Smalltalk MVC)
  • الصفحات 293 إلى 304 (نمط تصميم المراقب)
  • الصفحات 163 إلى 174 (نمط التصميم المركب)
  • الصفحات 315 إلى 324 (نمط تصميم الاستراتيجية)
  • الصفحات 107 إلى 116 (طريقة تصميم طريقة المصنع)
  • الصفحات 175 إلى 185 (نمط تصميم الديكور)

إريك جاما، ريتشارد هيلم، رالف جونسون، وجون فلايسيدس. أنماط التصميم: عناصر البرمجيات القابلة لإعادة الاستخدام. وبعد أديسون ويسلي، ريدينج، ماساتشوستس، 1994.

ووفقا ل مارتن فاولر هم هياكلوي: مارتن فاولر-غوي

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

MVC هو نمط العمارة. ذكرت بوضوح جدا وتظهر في http://molecularsciences.org/zend/mvc_model_view_controller.

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