правильно ли я понимаю, что эта задача - это пример декоратора (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));
    }
.............................................................
.............................................................