В java.time.LocalDate
в Core Java 8 метод format
реализован следующим образом:
@Override // override for Javadoc and performance
public String format(DateTimeFormatter formatter) {
Objects.requireNonNull(formatter, "formatter");
return formatter.format(this);
}
Аналогично, статический метод parse
реализован следующим образом:
public static LocalDate parse(CharSequence text, DateTimeFormatter formatter) {
Objects.requireNonNull(formatter, "formatter");
return formatter.parse(text, LocalDate::from);
}
Это отличается от состав или агрегация , поскольку LocalDate
является неизменным , и, следовательно, добавление переменной экземпляра в LocalDate
объект сломал бы неизменность .С точки зрения ответственности, это также не похоже на делегирование , согласно книге Рефакторинг: улучшение дизайна существующего кода , где для делегирования также требуется соответствующий экземплярпеременная
Вопрос: Какой метод проектирования или шаблон применяется?это просто самая слабая зависимость?или также делегирование ?или что-то еще?