تو دنیای برنامهنویسی، یکی از مفاهیمی که شاید کمتر به گوشمون خورده باشه، اینترفیسها (Interfaces) هستن. اینترفیسها به ما کمک میکنن که یک قرارداد مشترک بین کلاسها تعریف کنیم بدون اینکه جزئیات پیادهسازی رو مشخص کنیم. به زبون ساده، اینترفیس تعیین میکنه که چه متدهایی باید درون کلاس وجود داشته باشن.
خب، چرا باید از اینترفیس استفاده کنیم؟ اول اینکه اینترفیسها باعث میشن که کد ما قابلیت گسترش بیشتری داشته باشه. چون ما میتونیم کلاسهای مختلفی داشته باشیم که همگی یک اینترفیس مشترک رو پیادهسازی میکنن و در عین حال هر کلاس جزئیات مخصوص به خودش رو داشته باشه.
مثلا فرض کنید یک فروشگاه اینترنتی داریم با چندین نوع حساب کاربری مثل مشتری، مدیر و تامین کننده. هر کدوم ممکنه متدهای خاص خودشون رو داشته باشن اما همه باید یک متد مشترک برای خرید داشته باشن. اینجا میتونیم از یک اینترفیس برای تعریف اون متد استفاده کنیم.
به کمک اینترفیسها، میتونیم اطمینان حاصل کنیم که تمامی کلاسهای ما به شکل یکسانی نقاط مشترک خود رو پیادهسازی میکنن. این موضوع به شدت به ما در مدیریت و نگهداری کدها کمک میکنه و باعث میشه که از اشتباهات ناشی از عدم پیادهسازی صحیح جلوگیری بشه.
مثالی از کد در PHP
interface Buyable {
public function buy();
}
class Customer implements Buyable {
public function buy() {
echo "Customer is buying something";
}
}
class Admin implements Buyable {
public function buy() {
echo "Admin can manage the purchases";
}
}
توضیح خط به خط کد
interface Buyable
: اینجا داریم یک اینترفیس به نام Buyable
تعریف میکنیم که فقط یک متد buy
رو تعیین میکنه.
public function buy()
: اینجا متدی تعریف شده که تمامی کلاسهایی که این اینترفیس رو پیادهسازی میکنن باید داشته باشن.
class Customer implements Buyable
: کلاس Customer
اینترفیس Buyable
رو پیادهسازی کرده و الزاماً باید متد buy
رو پیادهسازی کنه.
class Admin implements Buyable
: کلاس Admin
هم مشابه کلاس قبلی باید متد buy
رو پیادهسازی کنه اما به شکل خودش.