Зачем использовать внешний интерфейс?
Добавлено: 2017.09.12, 19:22
Здесь человек пишет, что
Где я не прав?
Почему человек считает, что завязать код на внешний (чужой) интерфейс это лучше, чем использовать Yii::$app ? Какую проблему это решит? Код в обоих случаях будет зависеть от фреймворка. Никакой разницы.Проблема в том как бы мы не хотели не использовать Yii::$app, мы не можем это сделать. (без костылей) У половины стандартных компонентах нет интерфейсов что бы прокинуть в класс.
Почему человек считает, что внешний интерфейс фреймворка ему чем-то поможет если завтра ему нужно будет взять сторонний кеш? Сторонний кеш точно также будет нарушать внешний интерфейс фреймворка, как и его собственный. Никакой разницы.Можно создать свой интерфейс, но это костыль, и мы на него наткнемся если завтра нам нужно взять сторонний кеш.
Я всегда думал, что это называется адаптер, а оказывается костыль. Всегда думал, что вместо привязки к внешним интерфейсам нужно использовать адаптер, так какМожно создать свой интерфейс, но это костыль
Я бы проигнорировал это, если бы ему не отвечал samdark в стиле "да, интерфейс нужен". Зачем пользователю фреймворка внешний интерфейс? Этим интерфейсом мы только привяжем наш Application layer к фреймворку/компоненту/библиотеке. Окей, теперь мы можем не использовать Yii:::$app. Ура. Но проблема фреймворкозависимости решена? Нет.Плюсы:
инкапсуляция реализации внешних классов (компонентов, библиотек), система становится независимой от интерфейса внешних классов; (с) Википедия
Где я не прав?