После того, как вы ответили на вопрос How do the Proxy, Decorator, Adapter, and Bridge Patterns differ?, как бы вы описали следующий шаблон, который мне нужно было реализовать несколько раз?Каково имя шаблона для переноса доступа к статическим методам/переменным?
Сценарий заключается в том, что я ссылаюсь на статический метод или переменную из стороннего класса, но я хочу скрыть его за интерфейсом, чтобы я мог высмеять его для тестирования.
Например, в Java библиотека commons-lang имеет класс SystemUtils с константами IS_OS_WINDOWS и т. Д. Я хочу запускать тесты, которые независимы от базовой ОС и имитировать различные ОС, поэтому я обертываю доступ к константе следующим образом:
interface ISystemUtils {
boolean isOsWindows();
}
class SystemUtilsImpl implements ISystemUtils {
@Override
public boolean isOsWindows() {
return SystemUtils.IS_OS_WINDOWS;
}
}
Это прокси, общая «обертка» или что-то еще?
Спасибо за быстрый ответ @adriaan. Фасад «чувствует» право, хотя я понимаю, что он обычно (всегда?) Участвует в покрытии элементов нескольких основных классов. Однако мой пример, возможно, охватывает большинство вышеупомянутых пунктов, в частности, первый. – Richard
@ Gendarme Исправлена компоновка линии Facade, tnx –