توی مهندسی نرمافزار، سعی میکنیم پیچیدگی یک نرمافزار بزرگ رو مدیریت کنیم و یکسری ابزار برای این کار هم داریم. یکی از بهترین ابزارها شکستن کد به ماژولهای متفاوته. توی طراحی این ماژولها سعی میکنیم چیزهای شبیه هم که به هم ربط زیادی دارن در یک ماژول باشن و در عوض چیزهایی که در ماژولهای دیگه هستن خیلی ربطی به ماژول ما نداشته باشن.
اینجا دو تا مفهوم داریم که خوبه با اسم اصلیشون هم آشنا باشیم. Cohesion به وابستگی و شباهت داخل ماژول برمیگرده که انتظار داریم بالا باشه و سعی میکنیم بیشینهاش کنیم. اما Coupling به وابستگی بین یک ماژول و ماژولهای دیگه برمیگرده و سعی میکنیم کمش کنیم.
این که انواع Coupling چیا میتونه باشه بسته به نرمافزار و سطحی که توش صحبت میکنیم میتونه خیلی متفاوت باشه ولی اگه بخوام ساده مثال بزنم ممکنه ماژول ما انتظار داشته باشه دیتای تولیدشده توسط یه ماژول دیگه یه جایی باشه. یا این که متدهای یک کلاس متدهای کلاس دیگری رو صدا بزنن.
در این زمینه تلاشهای متفاوتی شده که به شکل عددی بیایم دو تا معیار رو اندازهگیری کنیم ولی من چیز به درد بخور عملیای ندیدم!
https://en.wikipedia.org/wiki/Coupling_(computer_programming)
Post #3248
3.73K
- ❤ 18
- 👍 1