توضیح کوتاهی درمورد interface segregation principle و این که چه کمی به ما میکنه؟
اگر با دنیای مهندسی نرمافزار آشنا هستید احتمالا اسم اصول SOLID به گوشتون آشناست. SOLID مخفف پنج قانون پایهی مهندسی نرمافزار در پارادایم Object-Oriented است. که رعایت اونها کد شما رو توسعه پذیرتر و خوانا تر میکنه. در این مطلب توضیح کوتاهی در مورد I یا همون Interface Segregation Principle میدهم و امیدوارم مورد توجهتون قرار بگیره.
دنیای نرم افزار همیشه در حال پیشرفت و توسعه است. پروژه ای که شما روش کار میکنید هم همین طور پس لطفا اشتباه برداشت. تنبل بودن یا Lazy بودن در مهندسی نرم افزار یعنی تا چیزی رو لازم نداریم بیانش نکنیم. اگر چیزی رو هنوز لازم نداری صداش نزن. پیاده سازیش نکن. حالا چرا؟
دلیل خوب بودن این تنبلی اینه که چون پروژهی شما و تکنولوژی هر دو در حال پیشرفت هستن و تو نمیدونی در آینده قراره چی پیش بیاد و چه ویژگی جدیدی به پروژه اضافه بشه هر چی بیشتر کلی گویی کنی و کمتر حرف بزنی. هر چقدر کمتر پیاده سازی کنی برای آینده ی مبهم و نامعلوم بهتره.
بهترین راه برای تنبل بودن در مهندسی نرمافزار استفاده از Interface هاست. Interface ها به ما اجازه میدن کلاسی رو بسازیم براش متد تعریف بکنیم و همه جا معرفیش کنیم بدون این که پیاده سازیش کنیم. این عالیه! توسعه بدون توسعه. بیان کلی اون چیزی که توی ذهنمونه بدون این که مجبور به پیاده سازیش باشیم این اجازه رو بهمون میده که تا زمانی که مجبور نشدیم پیاده سازیش نکنیم.
این اصل خیلی ساده بیان میکنه هر وقت خواستی کلاسی تعریف کنی اول interface تعریف کن. و بعد که خواستی بیشتر توضیح بدی از اون interface اولیه ارث ببر و یک interface دیگه تعریف کن با جزییات بیشتر! اونقدر این کار رو انجام بده تا بالاخره مجبور به پیاده سازی اون کلاس بشی. کلاس های بعدی که تعریف میکنی یا زیر مجوعه یکی از این interface ها هستن یا باید براشون یک interface دیگه تعریف کنی. اگه به این شکل دقت کنی یک ساختار درختی تو پروژه به وجود میاره که خیلی در توسعه نرم افزار در آینده بهت کمک میکنه.
خوشحال میشم نظرتون رو راجع به این مطلب و مطالب گذشته بدونم و نقص های موجود در متنم رو با نظر شما اصلاح کنم.