Мне часто кажется, что я сталкиваюсь с обсуждением вопроса о том, применять или нет какое-то соглашение о префиксах / суффиксах к именам типов интерфейса, обычно добавляя «I» в начало имени.
Лично я в лагере, который не поддерживает префикса, но это не тот вопрос, о котором идет речь.Скорее, речь идет об одном из аргументов, которые я часто слышу в этой дискуссии:
Вы не можете сразу увидеть, является ли что-то интерфейсом или классом.
Вопрос, который сразу же возникает у меня в голове: кроме создания объекта, зачем вам когда-нибудь заботиться о том, является ли ссылка на объект классом или интерфейсом?
Я отметил этот вопрос как языкагностик, но, как было указано, это не так.Я утверждаю, что это потому, что, хотя конкретные детали реализации языка могут быть интересны, я хотел бы сохранить это на концептуальном уровне.Другими словами, я думаю , что концептуально вам никогда не придется заботиться о том, указана ли ссылка на объект в виде класса или интерфейса, но я не уверен , поэтомувопрос.
Это не обсуждение IDE и того, что они делают или не делают при визуализации различных типов;Забота о типе объекта, безусловно, необходима при просмотре кода (пакеты / исходники / любая форма).Это также не дискуссия о плюсах и минусах соглашения об именах.Я просто не могу понять, в каком сценарии, кроме создания объекта, вы действительно заботитесь о том, ссылаетесь ли вы на конкретный тип или интерфейс.