سؤال

ما هي المبادئ التي تتبعها بشكل عام عند القيام بتصميم الفصل؟

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

المحلول

مبادئ التصميم الفئوي الموجه للكائنات (مبادئ "SOLID")

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

مصدر: http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

نصائح أخرى

لا تنسى قانون ديميتر.

ال صلب.مبادئ.
أو على الأقل أحاول ألا أبتعد كثيرًا عنهم.

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

بطاقات ذلك وبطاقات CRC (الفئة، المسؤولية، المتعاونون) (اكتب البطاقة في ملفات رأسك، وليس على البطاقات الفعلية بهذه الطريقة نظرًا لسهولة فهم الوثائق أيضًا)

كما ذكرنا سابقًا، فإن بعض المبادئ الأساسية للتصميم الموجه للكائنات هي OCP وLSP وDIP وISP.

نظرة عامة ممتازة على هذه من تأليف روبرت سي.مارتن (من Object Mentor) متاح هنا: مبادئ وأنماط OOD

ال "الحصول على الموارد هو التهيئة"النموذج مفيد، خاصة عند الكتابة بلغة C++ والتعامل مع موارد نظام التشغيل (مقابض الملفات، والمنافذ، وما إلى ذلك).

الميزة الرئيسية لهذا الأسلوب هي أن الكائن، بمجرد إنشائه، يكون "مكتملًا" - ليست هناك حاجة للتهيئة على مرحلتين ولا توجد إمكانية للكائنات التي تمت تهيئتها جزئيًا.

مترابطة بشكل فضفاض، متماسكة للغاية.

التكوين على الميراث.

يعد التصميم المعتمد على المجال بشكل عام مبدأً جيدًا يجب اتباعه.

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

المبادئ الصلبة ونمط ليسكوف، إلى جانب نمط المسؤولية الفردية.

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

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

أحاول عادةً أن أدمج الفصل في أحد oo أنماط التصميم.

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