ISP - Interface Segregation Principle
tip
"... evitem depender de coisas que não usam".
É prejudicial depender de módulos que contenham mais elementos do que você precisa. (...) Aprenda esta lição: depender de algo que contém itens desnecessários pode causar problemas inesperados.
abstract class Telefone {
void ligacao();
}
abstract Celular extends Telefone {
void sms();
}
abstract class Smartphone extends Celular implements Telefone {
void whatsapp();
}
class Nokia1100x implements Celular {
@override
void ligacao() => print('Eu sei fazer ligacao');
@override
void sms() => print('Eu sei enviar SMS);
}
class Android implements Smartphone {
@override
void ligacao() => print('Eu sei fazer ligacao');
@override
void sms() => print('Eu sei enviar SMS);
@override
void whatsapp() => print('Vamos zapear');
}