Почему вы должны заботиться о том, является ли ссылка на объект интерфейсом или классом?

Мне часто кажется, что я сталкиваюсь собсуждение о том, применять или нет какое-то соглашение префикса / суффикса к именам типов интерфейса, обычно добавляя «I» в начало имени.

Лично я в лагере, который не поддерживает префиксы, но это не тот вопрос, о котором идет речь. Скорее, это один из аргументов, которые я часто слышу в этой дискуссии:

Вы больше не можете сразу увидеть, является ли что-то интерфейсом или классом.

Вопрос, который сразу же возникает у меня в голове: кроме создания объекта, зачем вам заботиться о том, является ли ссылка на объект классом или интерфейсом?

Я пометил этот вопрос как независимый от языка, но, как было указано, это не так. Я утверждаю, что это потому, что, хотя конкретные детали реализации языка могут быть интересны, я хотел бы сохранить это на концептуальном уровне. Другими словами, ясчитать что концептуально вам никогда не придется заботиться о том, указана ли ссылка на объект в виде класса или интерфейса, но я неконечноотсюда и вопрос.

Это не обсуждение IDE и того, что они делают или не делают при визуализации различных типов; Забота о типе объекта, безусловно, необходима при просмотре кода (пакеты / исходники / любая форма). Это также не дискуссия о плюсах и минусах соглашения об именах. Я просто не могу понять, в каком сценарии, кроме создания объекта, вы на самом деле заботитесь о том, ссылаетесь ли вы на конкретный тип или интерфейс.

Ответы на вопрос(9)

Ваш ответ на вопрос