С вашей текущей настройкой я бы сказал, что наличие интерфейса Generic
не является абсолютно необходимым. Однако, по мере того, как вы расширяете свой код, я думаю, что он может быть полезен.
Одним из преимуществ использования этого сейчас является то, что теперь у вас есть два одинаковых класса с согласованными именами методов и похожими сигнатурами методов. Унаследовав Generic
, можно избежать опечатки от ввода caluclate
вместо calculate
. Некоторые могут не считать это уважительной причиной, но я бы сказал, что использование этого интерфейса делает ваш код более согласованным в этом случае.
Преимущество использования Generic
появляется, когда вам действительно нужно сослаться на него.
interface Calculator<T : Number, K : Generic<T>> {
fun calculate(generic: K): T
}
class DefaultCalculator...
Приведенный выше код является лишь примером и, вероятно, не практичен в вашем случае использования, но если вы считаете, что он может понадобиться в будущем, использование интерфейса Generic
теперь может сэкономить вам некоторый рефакторинг.