Как называется этот паттерн
От: Крякозавр  
Дата: 16.03.16 16:35
Оценка:
Есть сторонний класс, открытый для наследования. Необходимо выделить его АПИ в интерфейс (для сужения АПИ, снижения зависимости от стороннего кода, мокирования и т.д.). Но лень писать делегирование (хотя во многих случаях это было бы правильно).

Пример на Java. Здесь сторонний класс — Object, интересующее нас апи — метод hashCode

interface IHaveHashCode {
  int hashCode();
}

class IHaveHashCodeImpl implements IHaveHashCode {}



IHaveHashCode o = new IHaveHashCodeImpl();
int i = o.hashCode();


Здесь мы посредством ввода пустого класса получаем реализацию интерфейса "автоматически".
Re: Как называется этот паттерн
От: Sinix  
Дата: 16.03.16 16:58
Оценка:
Здравствуйте, Крякозавр, Вы писали:

К>Как называется этот паттерн?

Interface Duck Typing?

Если серьёзно, то оно зовётся extract interface (сам процесс рефакторинга), результат — TypeName' interface или extracted interface (если по контексту уже понятно о чём речь).
Re: Как называется этот паттерн
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.03.16 21:54
Оценка:
Здравствуйте, Крякозавр, Вы писали:

К>Здесь мы посредством ввода пустого класса получаем реализацию интерфейса "автоматически".


Это не паттерн, а фича языка.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.