2016-02-10 3 views
-1

В книгах и онлайн-примерах «фасад» обычно представляет собой класс, который не реализует и не взаимодействует. Почему это? Является ли это стандартом для создания фасада?Реализация фасада, реализующая интерфейс

Как вы могли бы затем написать для него единичные тесты? если он не реализует интерфейс или не имеет виртуальных методов, теперь есть способ издеваться над ним в модульных тестах.

+0

Это вопрос для программистов, а не SO. –

+0

Он принадлежит [programers.stackexchange.com] (http://programmers.stackexchange.com/) –

ответ

1

Цель фасада в основном состоит в том, чтобы служить в качестве обертки, которая может быть для multitude of reasons. Следовательно, это класс, потому что он инкапсулирует хотя бы некоторую минимальную логику. Интерфейсы не могут этого сделать.

Однако никто не ограничивает вас внедрением интерфейса в классе, который служит для того, чтобы быть фасадом. Это даже делает лот смысла. Интерфейс объявляет стандартизованный API, тогда класс фасада служит для реализации этого API для базовой библиотеки/класса, который необходимо обернуть для поддержки этого API.

+1

совершенный. благодаря – BobSwanson

Смежные вопросы