SOLID - это хороший принцип, моя идея в том, что вы не должны применять их, когда думаете, что вы чрезмерно проектируете!Например, я применяю ISP в основном на классах моего сервисного уровня, на бизнес-уровне, я изменю свои классы, потому что это изменение в бизнесе, я не буду создавать новую реализацию (и я нарушаю принцип Open / Close,но мне все равно, потому что это меняет бизнес!).
РЕДАКТИРОВАТЬ: я также применяю ISP в моем уровне данных, поэтому я применяю ISP в основном для всех вопросов ввода / вывода (xml, sql, email...).
Если вы будете применять ISP везде, у вас будут сотни интерфейсов, и это может стать кошмаром для отладки / инициализации.