Могут быть методы, которым нужен аргумент IAll
- поэтому, если вы соответствуете требованиям для реализации всего IAll
, это удобно сделать, а не просто реализовать каждый из расширяемых интерфейсов!
Обычно, конечно, интерфейсы не пусты, поэтому есть определенные (возможно, небольшие) затраты на реализацию одного и / или другого (разные, несколько методов должны быть реализованы). Если, скажем, у IFirst
есть метод foo
, а у ISecond
есть метод bar
, то имеет смысл расширить оба в IBoth
, даже если это не добавляет дальнейших необходимых методов - это позволяет методу четко выразить, что ему нужен аргумент, который имеет оба метода, foo
и bar
.
Если бы все интерфейсы в мире были пусты, само их использование (а тем более расширение их за счет еще более пустого интерфейса) было бы намного более сомнительно, конечно! -)