زمان و نحوه استفاده از interface در سی شارپ - قسمت دوم
در پست قبل یک توضیح اولیه از مشکلی که ما را به استفاده از رابط ها خواهد رساند ارائه دادیم.
در این پست نحوه حل این مشکل را بررسی میکنیم.
در قدم اول برای رهایی از مشکل جهنم وابستگی ها میتوانیم یک کلاس سوم ایجاد کنیم و به جای اینکه قابلیت حرکت و مبارزه مستقیما با هم صحبت کنند،هر کدام هنگامی که کارش را شروع کرد به این کلاس سوم اطلاع دهد،ما نام این کلاس سوم را مرکز کنترل میگذاریم.
در اینجا زمانی که قابلیت مبارزه کار خود را شروع میکند،خود را به مرکز کنترل معرفی میکند تا نشان دهد شروع به کار کرده است،سپس مرکز کنترل ضمن تشخیص کسی که خودش را معرفی کرده باید به قابلیت حرکت اطلاع دهد که کار خود را متوقف کند.
اکنون قابلیت حرکت و مبارزه بدون اینکه هیچ اطلاعی از هم داشته باشند کار خود را انجام میدهند.
اما کار هنوز تمام نشده است،اگر به جای دو قابلیت قبل،قابلیت های صحبت کردن،غذا خوردن،شنا کردن و ده ها قابلیت دیگر اضافه شود،چه بلایی بر سر مرکز کنترل خواهد آمد.
مرکز مجبور است هر بار که نامی رسید با حلقه های شرطی طولانی بررسی کند که چه کسی است که با مرکز ارتباط گرفته تا بعدا وقتی شخص دیگری خود را معرفی کرد،بداند که به چه شخصی باید بگوید کارش را متوقف کند!!
از سمتی با اضافه شدن قابلیت جدید او نیز باید یک حلقه شرطی دیگر برای بررسی اضافه کند...
اینجاست که مرکز کنترل از رابط ها استفاده میکند تا به رنج خود پایان دهد.
#interface
#سی_شارپ
#آموزش
👨💻@iran_skill
زمان و نحوه استفاده از interface در سی شارپ - قسمت سوم
مرکز کنترل برای پایان دادن به رنج خود و بررسی های عریض و طویل اینکه چه شخصی قصد انجام چه کاری را دارد، تمام کلاس هایی که قصد کار مشخصی با هم دارند را تشویق به ایجاد یک رابطه یا قرارداد میکند.
فرض کنید یک کلاس interface تحت عنوان اجازه ساخته میشود،داخل آن یک تابع ایجاد میشود که نام آن (توقف) است هیچ بدنه کدی ندارد، در این مثال ورودی(parameter) نمیگیرد و فرضا هیچ خروجی(return) هم ندارد.
سپس همه کلاس ها(قابلیت ها) از کلاس (اجازه) ارث بری میکنند.
حال تمام کلاس هایی که این کار را کردهاند مجبوراند یک تابع دقیقا با همان نام ،همان نوع ورودی و همان نوع خروجیِ تابع توقفی که درون کلاس اجازه است بسازند.
حالا مرکز کنترل فقط تماس کسانی را پاسخ میدهد که در رابطه یا همان قراردادِ (اجازه) حضور دارند، دیگر نیازی نیست که او بداند دقیقا چه شخصی با او ارتباط گرفته و یا حتی خودش با چی شخصی تماس میگیرد ،مرکز کنترل تنها اطلاع دارد که کسی وجود دارد که قرارداد اجازه را امضا کرده و قبلا نیز شروع کارش را به او اطلاع داده حالا کس دیگری نیز که او نیز در چنین قراردادی است قصد شروع کاری دارد،مرکز کنترل به فرد قبلی اطلاع اجرای قرارداد توقف را میدهد و نفر فعلی را نیز به عنوان فردی که در حال اجرای کار خود است و در قرارداد حضور دارد به خاطر میسپارد تا در تماس بعدی به او نیز اطلاع دهد.
این بود مزیت استفاده از interface در سی شارپ.
#interface
#سی_شارپ
#آموزش
👨💻@iran_skill