Вопрос в том, как ваша SomeClassExtensions.InterfaceMethod
осуществит реализацию? Т.е. какие свойства / методы были бы определены в IAppInterface
, чтобы было достаточно данных / поведения для их реализации в методе расширения? Я думаю, вы обнаружите, что интерфейс должен иметь определенный «базовый» набор методов, чтобы он был значимым.
Кроме того, люди часто определяют другие методы в интерфейсе, чтобы сделать его более удобным для вызывающего - методы, которые на самом деле являются просто композициями "базового" набора методов интерфейса. Эти удобные методы являются отличным кандидатом на удаление из интерфейса и полностью определены с помощью методов расширения. Это освобождает разработчиков вашего интерфейса от необходимости реализовывать эти удобные методы (удобные методы, которые обычно кодируются одинаково, независимо от реализации), в то же время позволяя вызывающим абонентам пользоваться возможностью их вызова.