---
title: Orthogonality
localeTitle: التعامد
---
## التعامد

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

انظر الاقتباس التالي من Eric S. Raymond "Art of UNIX programming"

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

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

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

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

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

### تماسك قوي

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

### اقتران فضفاض

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

#### معلومات اكثر:

*   [تعامديه (برمجة) | ويكيبيديا](https://en.wikipedia.org/wiki/Orthogonality_(programming))
*   [مبادئ البرمجة المتعامدة للكائنات المتعامدة jasoncoffin.com](http://www.jasoncoffin.com/cohesion-and-coupling-principles-of-orthogonal-object-oriented-programming/)
*   [GRASP - مبادئ تصميم وجوه المنحى | ويكيبيديا](https://en.wikipedia.org/wiki/GRASP_(object-oriented_design)

Stack Overflow: ما هي التعامدية ؟. https://stackoverflow.com/questions/1527393/what-is-orthogonality