правильно ли я понимаю, что эта задача - это пример декоратора (Wrapper, обертка), который достигается путем композиции (так как не унаследован от того класса, объект которого оборачиваем. валидатор, к слову не принимал с унаследованием) и пример делегирования
просто еще интересно, почему валидатор не принимал с наследованием. наверное, потому что при этом вызывался конструктор класса-родителя...
а так, получается, что без наследования мы имеем как бы свой FileWriter с расширенной функциональностью (в виде дублирования текста в консоль)
часть кода с одним конструктором (их 5) и одним методом (их 6)
public class FileConsoleWriter{
private FileWriter fileWriter;
public FileConsoleWriter(String fileName) throws IOException {
fileWriter = new FileWriter(fileName);
}
.............................................................
.............................................................
public void write(char[] caff, int off, int len) throws IOException{
fileWriter.write(caff, off, len);
System.out.println(String.valueOf(caff, off, len));
}
.............................................................
.............................................................