اصل جداسازی Interface ها

Interface Segregation Principle (ISP)

داشتن interface های کوچیک بهتر از داشتن یک interface بزرگ است.

این اصل درواقع شبیه Single Responsibility هست با این تفاوت که درمورد interface ها است.

اینترفیس بزرگ
اینترفیس بزرگ

مثال

فرض کنید قرار است در بازی شما یکسری Ability استفاده شود.

https://gist.github.com/smkplus/c45b2030867cc51660ae0438da19adac

به جای interface کلی IAbilities می توان برای هر کدام از Ability ها یک interface ساخت:

https://gist.github.com/smkplus/3a17a3f234d629140e18fffb9e642519