Mam kilka interfejsów:Jak utworzyć metodę akceptowania instancji za pomocą dwóch interfejsów?
public interface Speaker {
void speak();
}
public inteface Walker {
void walk();
}
chcę metodę, która pobiera instancje, które są zarówno Speaker
i Walker
.
Teraz mogę realizować inny interfejs:
public interface WalkerSpeaker extends Walker, Speaker {
}
i przyjąć, że:
void walkAndTalk(final WalkerSpeaker x) {
x.walk();
x.speak();
}
Ale to jest dość skomplikowana z wielu kombinacji, a każda realizacja musi dziedziczyć WalkerSpeaker
go do pracy !
Czy istnieje lepszy sposób?
To jest prawie jak to jest. Jeśli stanie się nieporęczna, możesz spojrzeć na swój projekt. – Underbalanced
@Ravindrababu Twoja odpowiedź na to łącze jest tak samo kłopotliwa i bardzo sztywna, że nie można jej łatwo powiększyć ani zmienić. – Underbalanced
fyi: Dobrą praktyką jest używanie 'narzędzi' zamiast 'rozszerzeń' dla interfejsów. – Akunosh