سلام و احترام
مقاله ی امروز توضیحی درباره ی Loose Coupling و Tight Coupling است .
اگر برنامه نویس باشید و مقالات و آموزش های مربوط به برنامه نویس های حرفه ای را دنبال نمایید حتما با اصطلاحاتی تحت عناوین Loose Coupling و Tight Coupling برخورد کرده اید. اما تفاوت این دو مورد در چیست؟
Loose Coupling به معنای به حداقل رساندن وابستگی های کلاس به کلاس های دیگری که مستقیما از آن ها استفاده می کند می باشد. در Tight Coupling کلاس ها و آبجکت ها به یکدیگر به شدت وابسته می باشند. در حالت کلی Tight Coupling معمولا ساختار بدی می باشد چرا که انعطاف پذیری و قابلیت استفاده مجدد کد را پایین می آورد و نیز توسعه و تغییر در کد را بسیار مشکل تر می نماید و … .
شیئی که Tightly Coupled باشد شیئی می باشد که نیاز دارد تا در مورد بقیه شی ها یا object ها دانش بسیار کمی داشته باشید و معمولا بسیار به ساختار یکدیگر وابسته می باشند. در یک نرم افزار Tightly Coupled تغییر در یک شی معمولا نیازمند تغییر در چندین شی دیگر نیز می باشد. در یک پروژه کوچک به راحتی می توانیم تغییرات را تشخیص دهیم و احتمال اینکه بخشی از کد که نیاز به اصلاح دارد بدون اصلاح بماند بسیار کم می باشد. اما در پروژه های بزرگتر همه برنامه نویس ها وابستگی های درونی آبجکت ها به یکدیگر را نمی شناسند و بنابراین تغییر در یک آبجکت احتمال این که باعث عدم اجرای درست بخش دیگری از برنامه شود را بیشتر می کند. اما هر مجموعه آبجکت های Loosely coupled به یکدیگر وابسته نمی باشند.
فرض کنید در کی سیستم ریموت و تلویزیون Tight Coupling برخی مشکلات را ایجاد می کند. کلاس بالا را در نظر بگیرید تمام آبجکت ها شدیدا به یکدیگر وابسته می باشند که باعث بروز مشکلات زیر خواهد شد: