يستخدم مبدأ المهمة الواحدة في البرمجة الكائنية ليوضح أن كل كائن يجب أن تكون له مهمة واحدة فقط، ويجب أن تكون تلك المهمة مغلفة بالكامل داخل الصنف وكل الخدمات التي يقدمها يجب أن تصب في نفس تلك المهمة.[1][2][3]
قُدم هذا المصطلح بواسطة روبرت مارتن (Robert C. Martin) في مقال يحمل نفس الاسم كجزء من مؤلَّفه "مبادئ التصميم الكائني". أصبح المصطلح شائعاً من خلال كتابه "تطوير البرمجيات على طريقة الأجايل - مبادئ ونماذج وممارسات". يصف مارتن هذا المبدأ على أنه مبني على مبدأ التماسك.
يعرِّف مارتن المهمة على أنها "سبب للتغيير" و يخلص في النهاية للقول أنه يجب أن يكون هنالك سبب واحد فقط لتغيير أي صنف أو تركيبة. على سبيل المثال، تخيل وجود تركيبة ما مسؤولة عن تنسيق وطباعة التقارير. هنالك سببان يمكن أن يدعوا لتغيير تركيبة كهذه. الأول هو تغير محتوى التقرير. أما الثاني فهو تغير نسق التقرير. هذان السببان ينبعان من منطلقين مختلفين تماماً، أحدهما جوهري أما الآخر فهو تجميلي. بحسب مبدأ المهمة الواحدة فإن هذين السببين يعتبران مهمتين مختلفتين، وبالتالي يجب أن يتواجدا في صنفين أو تركيبتين مختلفتين.
انظر أيضاً
- SOLID (تصميم كائني المنحى) يشير حرف S إلى مبدأ المهمة الواحدة.
- مبدأ المفتوح المغلق.
مراجع
- Martin, Robert C. (2003). Agile Software Development, Principles, Patterns, and Practices. Prentice Hall. صفحة 95. . مؤرشف من الأصل في 10 مايو 2019.
- Page-Jones, Meilir (1988). The Practical Guide to Structured Systems Design. Yourdon Press Computing Series. صفحة 82. .
- DeMarco, Tom. (1979). Structured Analysis and System Specification. برنتيس هول . . مؤرشف من في 16 ديسمبر 2019.