سرفصل‌های آموزشی
آموزش برنامه نویسی
آشنایی با مفهوم اینترفیس

آشنایی با مفهوم اینترفیس

در زبان‌های برنامه نویسی شیء گرا، در کنار مفهوم وراثت، می بایست با مفهوم دیگری تحت عنوان اینترفیس نیز آشنا شویم که بسیار پر کاربرد است. باتوجه به این که واژه ی اینترفیس در دنیای کامپیوتر و آی تی دارای معانی مختلفی است و کاربردهای فراوانی نیز دارد، ممکن است برنامه نویسان مبتدی در درک مفهوم آن کمی دچار سردرگمی شوند. به طور مثال، ما چیزی داریم تحت عنوان User Interface که به همان رابط کاربری نرم‌افزار یا اپلیکیشن که کاربران با آن تعامل می‌کنند اطلاق می‌شود اما در برنامه نویسی شیء گرایی، اینترفیس به نوعی از کلاس‌ها گفته می‌شود که هیچ گونه عملکردی نداشته و صرفاً برای ذخیره سازی تعدادی متد مورد استفاده قرار می گیرند:

public interface Vehicle {

    void startEngine();
}

همان‌طور که در کد فوق ملاحظه می شود، در زبان برنامه نویسی جاوا به جای کلیدواژه ی class از کلیدواژه ی interface استفاده شده سپس نامی همچون Vehicle به معنی «وسیله ی نقلیه» برای آن در نظر گرفته ایم (همچون نام کلاس ها، نام اینترفیس ها نیز می بایست با حرف بزرگ شروع شوند.) سپس یک متد داخل آن قرار داده‌ایم تحت عنوان ()startEngine که دارای هیچ گونه Functionality یا «عملکردی» نمی باشد. در واقع، ما اصلاً اجازه نداریم تا برای متدهای قرار گرفته داخل اینترفیس عملکردی تعریف کنیم.

حال ممکن است این سؤال برای شما پیش بیاید که با توجه به این که اینترفیس ها هیچ گونه عملکردی ندارند، فایده ساخت یک اینترفیس چیست؟ در‌ واقع زمانی که ما از اینترفیس ها استفاده می کنیم، گویی به برنامه ی خود قول می‌دهیم که حتماً در کلاسی که از آن اینترفیس خاص استفاده می شود، از کلیه ی متدهای قرار گرفته داخل آن اینترفیس استفاده خواهیم کرد. برای روشن‌تر شدن این مطلب، ابتدا مثالی از اینترفیس ها در زبان برنامه نویسی جاوا می زنیم:

class Car implements Vehicle {
	
    public void startEngine() {
        return "Start!";
    }
}

همان‌طور که در کد فوق ملاحظه می شود، ابتدا کلیدواژه ی class را نوشته سپس نام کلاس که Car است را نوشته ایم. برای آن که کلاس ما بتواند از اینترفیسی تحت عنوان Vehicle تبعیت کند، از کلیدواژه ای تحت عنوان implements استفاده نموده و در نهایت هم نام اینترفیس که در اینجا Vehicle است را آورده ایم. از آنجا که قول داده‌ایم تا در این کلاس حتماً متدی تحت عنوان ()startEngine داشته باشیم، پس چنین کلاسی را تعریف کرده که خروجی آن، return کردن استرینگی تحت عنوان !Start است. برای نشان دادن اینترفیس ها در یو ام ال نیز از ساختار زیر می توان استفاده نمود:

همان طور که در تصویر فوق مشخص است، برای نمایش دادن اینترفیس ها در یو ام ال، از کلیدواژه ی Interface داخل علامت های « » استفاده کرده سپس نام اینترفیس را پایین آن می نویسیم و کلاسی هم که از آن اینترفیس تبعیت می کند را با علامت پیکان از سمت کلاس به اینترفیس مشخص می سازیم.

online-support-icon