التعريف: يجب أن يحافظ كائن واحد على أقل فهم للكائنات الأخرى.
أصل المشكلة: العلاقة بين الفصول تقترب أكثر فأكثر ، والاقتران يزداد وأكبر. عندما تتغير فئة واحدة ، زاد التأثير على فئة أخرى.
الحل: قلل من الاقتران بين الفئات قدر الإمكان.
نظرًا لأننا تواصلنا مع البرمجة ، فقد عرفنا المبادئ العامة لتصميم البرمجيات والاقتران المنخفض والتماسك العالي. سواء أكان ذلك موجهًا نحو الكائنات أو الموجهة نحو العملية ، يجب أن تكون درجة الاقتران منخفضة قدر الإمكان لتحسين معدل إعادة استخدام الكود. ولكن كيف تبرمج اقتران منخفض؟
بغض النظر عن مدى تعقيد المنطق ، بالنسبة للفئات التابعة ، حاول تغليف المنطق داخل الفصل ، ولا تكشف عن أي معلومات إلى الخارج باستثناء الأساليب العامة المقدمة. هناك أيضًا تعريف أبسط: التواصل فقط مع الأصدقاء المباشرين. أولاً ، دعنا نوضح ماهية الصديق المباشر ؛ سيتم اقتران كل كائن مع كائنات أخرى. دعنا نقول أن هناك علاقة اقتران بين هذين الكائنين. دعنا نقول أن هذين الكائنين لهما علاقة صديق. هناك العديد من الطرق التي يحدث بها الاقتران ، مثل التبعية ، والارتباط ، والتكوين ، والتجميع ، وما إلى ذلك ، ندعو الفئة التي تظهر متغيرات الأعضاء ومعلمات الطريقة وقيم إرجاع الطريقة التي تسمى الأصدقاء المباشرون ، في حين أن الفصل الذي يظهر في المتغيرات المحلية ليس أصدقاء مباشرين. وهذا يعني أنه من الأفضل عدم الظهور داخل الفصل كمتغيرات محلية ؛
على سبيل المثال ، في المدرسة ، هناك العديد من المعلمين فيه ، مرقمين بالتسلسل. هناك العديد من الطلاب أدناه ، مرقمين في وقت واحد. اطلب الآن طباعة جميع المعلمين والطلاب.
أولاً ، ينتهك مبدأ الاقتران المنخفض والتماسك العالي
الرمز كما يلي.
package test1 ؛ import java.util.arraylist ؛ import java.util.list ؛ class teacher {privatestring id ؛ publicvoidsetId (string id) العمال الطالب {publiclist <Tudent> getAllStudent () {list <studture> list = newArrayList <Student> () ؛ for (int i = 0 ؛ i <100 ؛ i ++) {student student = new student () ؛ student.setId ("steprative <sitcher> getList <s stepress <) list = newArrayList <echans> () ؛ for (inti = 0 ؛ i <100 ؛ i ++) {teacher teacher = new teacher () ؛ teacher.setId ("رقم المعلم". {system.out.println (S.GetId ()) ؛} قائمة <Sehater> list2 = this.getAllTeacher () ؛ for (teacher t: list2) {system.out.println (t.getId ()) ؛}}}}}}}}} public classclient {publicstaticVoidMain (string [] args) {teachermanagetm = newTeacherManage () ؛ تظهر المشكلة الرئيسية لهذا التصميم الآن في فصل الدرس. وفقًا لقانون الاقتران المنخفض والتماسك العالي ، فإنه يتواصل مع الأصدقاء المباشرين فقط. فصل الطلاب ليس صديقًا مباشرًا في فصل الدرس. يجب تجنب اقتران علاقة الصديق غير المباشر في الفصل.
بعد التعديل ، يكون الرمز كما يلي:
package test2 ؛ import java.util.arraylist ؛ import java.util.list ؛ class teacher {privatestring id ؛ publicvoidsetId (string id) JUSTINGMENAGE {publiclist <Tudent> getAllStudent () {list <Tudtude> list = newArrayList <Student> () ؛ for (int i = 0 ؛ i <100 ؛ i ++) {list <Student> list1 = this.getAllStudent () ؛ for (student s: list1) {system.out.println (s.getId ()) ؛}}} class teachermanage {publiclist <sechans> getAllTeacher () {list <sether> list = newArrayList <) ؛ Teacher () ؛ Teacher.setId ("رقم المعلم"+i) ؛ list.add (Teacher) ؛} قائمة الإرجاع ؛} publicvoidprintallteacher () {list <sethor> list2 = this.getAllTeacher () ؛ for (teachr t: erly2) {system.out.println (t.getId () {teachermanagetm = newTeacherManage () ؛بعد التعديل ، أضاف الطالب طريقة جديدة لمعرف الطالب ويمكن للمعلم الاتصال به مباشرة. هذا يتجنب الاقتران مع الطلاب. النية الأصلية لمبدأ الاقتران المنخفض والتماسك العالي هو تقليل الاقتران بين الطبقات. نظرًا لأن كل فصل يقلل من تبعيات غير ضرورية ، فمن الممكن بالفعل تقليل علاقة الاقتران. ومع ذلك ، كل شيء له درجة. على الرغم من أنه يمكن تجنب التواصل مع الفصول غير المباشرة ، من أجل التواصل ، ستحدث العلاقات حتما من خلال "وسيط". يمكن أن يؤدي استخدام هذه القاعدة إلى تحقيق بنية واضحة والتماسك العالي والاقتران المنخفض ،
الاقتران والتماسك هما معايير نوعية لاستقلال الوحدة النمطية. عند تقسيم أنظمة البرمجيات إلى وحدات ، حاول تحقيق التماسك العالي والاقتران المنخفض قدر الإمكان لتحسين استقلال الوحدة ، ووضع الأساس لتصميم هياكل برمجيات عالية الجودة.
هناك مثال يسهل فهمه: يحتوي البرنامج على 50 وظيفة ، ويتم تنفيذ هذا البرنامج جيدًا ؛ ومع ذلك ، بمجرد تعديل إحدى الوظائف ، يجب تعديل الوظائف 49 الأخرى ، والتي هي نتيجة للاقتران العالي.
لخص
ما سبق هو كل محتوى هذه المقالة حول تحليل رمز رمز المثال للتماسك العالي وقانون الاقتران المنخفض. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!