... I pro rozhraní přece platí pravidlo, že ho smíš rozšířit, ale nesmíš ho změnit. ...
citation needed
To je přece jeden ze základních principů SOLID - OCP.
Proc bych jako svoje rozhrani v ramci modulu nemohl zmenit? IMO neni zase tak vzacne, ze i v ramci projektu se meni rozhrani. U vystavenych rozhrani to je asi spise vyjmecne, nicmene kdyz se to stane, tak radeji stravim 2s automatickym prejmenovavanim nez nekolik dnu manualnim.
Proč bych rozhraní měl měnit? To bych k tomu musel mít sakra vážný důvod. Snad mám nějaký návrh aplikace, podle kterého tu aplikaci vytvářím, ne? Veškerá rozhraní jsou jeho součástí.
Navic to prece musi vest k hroznemu kodu, kdyz problemy neopravujete, ale nabalujete nove metory (typu. add a addEx).
Co má být addEx? Pokud má třída splňovat SRP, tak může mít jen jednu metodu add(). Pokud bych potřeboval nějakou novou metodu (řekněme addEx), tak tu třídu musím nejprve refaktorovat, abych metodu s takovým názvem vůbec nepotřeboval - například rozdělením třídy. Obě třídy pak mohou používat metodu se shodným názvem add().