Если вы реализуете интерфейс, это означает, что реализованный объект может использоваться в любом сценарии, где ожидается реализация.С этой точки зрения совершенно очевидно, что вы должны реализовать все методы интерфейса, иначе вы не сможете сказать, что вы реализовали его.например, если у меня есть интерфейс ICalculator
с методом Add
и Subtract
, и вы хотите реализовать только Add
, может ли результирующий класс действительно использоваться другим проектом, которому требуется ICalculator?
Тем не менее, я вполне понимаю вашу гнев по поводу реализации некоторых интерфейсов в современных средах, поскольку они явно нарушают принцип сегрегации интерфейса .Это означает, что некоторые интерфейсы представляют собой наборы нескольких функций, которые можно использовать вместе, чтобы сделать что-то полезное.Например, если интерфейс ICalculator вместо простых Add
, Divide
и т. Д., Я начал добавлять методы, такие как StandardDeviation
, которые не являются необходимыми для природы объекта Calculator
.
Итог, да , вы должны реализовать каждого из членов интерфейса, однако, если вы уверены и знаете, что некоторые из них никогда не будут использоваться , не стесняйтесьоставьте их пустыми или, что еще лучше, заставьте их генерировать исключения, так что вы будете уверены, что никогда действительно означает никогда.