در این قسمت از سری آموزش مهمترین اصول طراحی و توسعه نرم افزار از وب سایت پرووید در رابطه با اصل Cohesion و یا چسپندگی صحبت خواهیم کرد. کلمه Cohesion در زبان انگلیسی به معنی چسپندگی است و مفهوم آن در رابطه با ارتباط نزدیک و یا غیر نزدیک تکه کدهای مختلف برنامه به یکدیگر است. در صحبت کردن از قابلیت Cohesion اغلب از کلمه های بالا و پایین استفاده می شود. به عبارت دیگر نرم افزار و کد آن می تواند چسپندگی بالا و یا چسپندگی پایینی داشته باشد. توصیه می کنیم بررسی مفاهیم Cohesion و Coupling در توسعه نرم افزار که یکی از مقاله ها برجسته وبسایت پرووید می باشد را مطالعه کنید.
در سطح متد چسپندگی بالا به این معنی است که خطوط مختلف کد که در یک متد نوشته شده است برای انجام یک وظیفه تک و کوچک بر روی تعدادی Object و داده های کوچک و مرتبط با یکدیگر ایفای نقش می کند. مفهوم Cohesion را می توانیم در سطح کلاس داشته باشیم. در سطح یک کلاس چسپندگی و یا Cohesion به این معنی است که اعضای عضو کلاس و یا همان Member ها که شامل Method ها، Property ها و Event ها و غیره می باشند کاملاً به یکدیگر مرتبط هستند و برای انجام یک هدف تک که هدف اصلی آن کلاس می باشند دور یکدیگر جمع شده اند. اصل چسپندگی و یا Cohesion در سطوح مختلف دیگر از قبیل Namespace و اسمبلی نیز تعریف می شود. علاوه بر کلمه های بالا و پایین و تعریف کردن چسپندگی بالا و چسپندگی پایین از کلمات نسبی دیگری برای تعیین سطح چسپندگی نیز استفاده می شود.
بدترین نوع چسپندگی و یا Cohesion را اصطلاحاً Coincidental Cohesion به معنی چسپندگی تصادفی می نامیم که در آن کدهای مختلف بدون هیچ گونه ارتباطی و به طور کاملاً تصادفی و هیچ گونه برنامه ریزی خاصی در کنار یکدیگر قرار گرفته اند. برای مثال فرض کنید که یک کلاس را به برنامه اضافه می کنید و هر متدی که نمی دانید جایگاه مناسب آن کجاست را به این کلاس اضافه می کنید. علاوه بر این بهترین و زیباترین مفهوم Cohesion را اصطلاحاً Functional Cohesion و یا چسپندگی عملکردی می نامیم. که در آن قسمت های مختلف کد کاملاً با یکدیگر در ارتباط هستند و به منظور انجام یک وظیفه تک در کنار یکدیگر قرار گرفته اند.
لیست کامل انواع چسپندگی ها و یا Cohesion ها را از بهترین آنها تا بدترین آنها در قسمت زیر مشاهده می کنید.
پیاده سازی و در نظر گرفتن چسپندگی در سطوح بسیار بالا شرایط یک نرم افزار را از جنبه های مختلف بهبود می بخشد که مهمترین آنها عبارتند از:
دیدگاهها
0