Обзор темы [Рефакторинг кода]

Введение внешнего метода (Introduce Foreign Method)

Серверный класс нуждается в дополнительном методе, но изменять этот класс нельзя.

Создать метод на клиентском классе с экземпляром серверного класса в качестве параметра.

Date newStart = new Date (previousEnd.getYear(), previousEnd.getMonth(),

previousEnd.getDate() + 1);

Date newStart = nextDay (previousEnd);

private static Date nextDay(Date arg) {

return new Date (arg.getYear(), arg.getMonth(), arg.getDate() + 1);

}

Если использование функциональности класса происходит один раз, может и не надо выделять ее в отдельный метод. Если же нет, то надо выделять, так как повторяющийся код – корень многих бед.

Если надо делать несколько внешних методов, либо многим классам нужен один и тот же метод, надо воспользоваться Введением локального расширения.