اقتران مقابل التماسك
الاقتران والتماسك مفهومان موجودان في Java (وجميع اللغات الأخرى الموجهة للكائنات). يقيس اقتران مدى اعتماد كل وحدة من وحدات البرنامج على وحدات البرنامج الأخرى. يقيس التماسك مدى قوة ارتباط كل وظيفة داخل الوحدة النمطية. في الواقع ، أي لغة موجهة للكائنات (بما في ذلك Java) لها هدفان رئيسيان هما زيادة التماسك وتقليل الاقتران في نفس الوقت ، من أجل تطوير البرامج الأكثر كفاءة. تم تطوير هذين المقياسين لهندسة البرمجيات بواسطة Larry Constantine لتقليل تكلفة تعديل البرامج وصيانتها.
ما هو التماسك؟
التماسك يقيس مدى قوة ارتباط كل وظيفة داخل وحدة البرنامج. تؤدي الفصول المنظمة جيدًا إلى برامج متماسكة للغاية. إذا كانت فئة معينة تؤدي مجموعة من الوظائف شديدة الارتباط ، فيُقال أن هذه الفئة متماسكة. من ناحية أخرى ، إذا كان الفصل يؤدي مجموعة من الوظائف غير المرتبطة تمامًا ، فهذا يعني أن الفصل ليس متماسكًا على الإطلاق. من المهم أن نفهم أن عدم وجود تماسك لا يعني أن التطبيق الكلي لا يحتوي على الوظائف المطلوبة. كل ما في الأمر أنه بدون التماسك ، سيكون من الصعب للغاية إدارة الوظائف لأنها ستنتشر في العديد من الأماكن الخاطئة مع زيادة تعقيد التطبيق بمرور الوقت. يعد الحفاظ على السلوكيات المنتشرة في جميع أنحاء الكود وتعديلها وتوسيعها أمرًا شاقًا للغاية حتى بالنسبة للمبرمجين الأكثر خبرة.
ما هو اقتران؟
يقيس اقتران مدى اعتماد كل وحدة من وحدات البرنامج على وحدات البرنامج الأخرى.تحدث التفاعلات بين كائنين بسبب وجود اقتران. تتميز البرامج المتقاربة بشكل فضفاض بالمرونة وقابلية التوسع. لا يعد الاقتران القوي جيدًا أبدًا لأن كائنًا واحدًا يمكن أن يعتمد بشكل كبير على كائن آخر. هذا كابوس عندما يتم تعديل الكود ، لأن الاقتران العالي يعني أن المبرمجين بحاجة إلى العمل في عدة أماكن من الكود حتى تعديل سلوكي واحد. يؤدي الاقتران القوي دائمًا إلى البرامج ذات المرونة المنخفضة وقابلية التوسع / التوسعة الأقل. ومع ذلك ، في لغات البرمجة مثل Java ، من المستحيل تجنب الاقتران تمامًا. لكن يوصى بأن يبذل المبرمجون قصارى جهدهم لتقليل الاقتران قدر الإمكان. من الممكن أيضًا الحصول على بعض أدوات التوصيل لمساعدة الكائنات على التفاعل مع بعضها البعض دون إعاقة قابلية التوسع والمرونة.
ما الفرق بين الاقتران والتماسك؟
على الرغم من أن الاقتران والتماسك يتعاملان مع جودة الوحدة النمطية في هندسة البرمجيات ، إلا أنهما مفهومان مختلفان تمامًا.يتحدث التماسك عن مدى ارتباط الوظائف ببعضها البعض داخل الوحدة النمطية ، بينما يتعامل الاقتران مع مدى اعتماد وحدة واحدة على وحدات البرنامج الأخرى داخل التطبيق بأكمله. من أجل الحصول على أفضل البرامج جودة ، يجب أن يصل التماسك والاقتران إلى طرفي نقيض من أطيافهم. بعبارة أخرى ، يوفر الاقتران السائب والتماسك القوي أفضل البرامج. توفر الحقول الخاصة والفئات غير العامة والأساليب الخاصة اقترانًا سائبًا ، مع جعل جميع الأعضاء مرئيين داخل الفصل ووجود الحزمة باعتبارها الرؤية الافتراضية توفر تماسكًا عاليًا.