Программа для интерфейса позволяет легко изменять реализацию контракта, определяемого интерфейсом. Он позволяет свободно связываться между контрактом и конкретными реализациями.
IInterface classRef = new ObjectWhatever()
Вы можете использовать любой класс, который реализует IInterface? Когда вам это нужно?
blockquote>Взгляните на этот вопрос SE на хорошем примере.
Почему должен быть предпочтительным интерфейс для класса Java?
использует ли производительность интерфейса?
if так сколько?
blockquote>Да. В субсекундах он будет иметь незначительные эксплуатационные издержки. Но если ваше приложение требует динамического изменения интерфейса, не беспокойтесь о влиянии производительности.
как вы можете избежать этого, не имея необходимости поддерживать два бита кода?
blockquote>Не пытайтесь избежать нескольких реализаций интерфейса, если ваше приложение нуждается в них , В отсутствие жесткой связи интерфейса с одной конкретной реализацией вам может потребоваться развернуть патч, чтобы изменить одну реализацию на другую реализацию.
Один хороший вариант использования: реализация шаблона стратегии:
В соответствии с сайтом caniuse.com, с которым вы связались, и официальной страницей статуса для IE и Edge , Microsoft не планирует в ближайшее время добавлять SMIL в IE или Edge. На самом деле, даже если бы он пришел к Edge, он, вероятно, все равно не попал бы в IE, поскольку основная цель IE в Windows 10 - унаследованная совместимость. А почему я не знаю точно. Этот (старый) ответ предполагает, что у Microsoft было какое-то возражение против спецификации, но поскольку это было 5 лет назад, это может быть не так.
Microsoft полагает, что есть особые проблемы, которые нужно решить, прежде чем они добавят SMIL
blockquote>. Кроме того, это сообщение в блоге IE с обратной стороны, когда они реализовали SVG в IE 9, объясняет их аргументацию в то время за не включая поддержку SMIL:
[...] поддержка анимации SMIL SVG в сообществе веб-разработчиков далека от сильной. Лидер усилия по стандартизации SVG писал, что, не поддерживая SMIL в его текущем состоянии, вероятно, лучше всего «поскольку WGS SVG намерена координировать работу с рабочей группой CSS, чтобы внести некоторые изменения в анимацию и расширить фильтры». Уже начата работа по согласованию CSS3 анимации и SVG.
blockquote>Это звучит так, как будто они ожидали изменения спецификации, и они хотели, чтобы она успокоилась, прежде чем внедрять ее. Таким образом, они не перестанут поставлять устаревшую реализацию. И, возможно, к настоящему времени спецификация достаточно стабильна для реализации, но больше не считается заслуживающей усилий.