package com.javarush.test.level19.lesson03.task02;
/* Адаптер
Используйте класс AdapterFileOutputStream, чтобы адаптировать FileOutputStream к новому интерфейсу AmigoStringWriter
*/
import java.io.FileOutputStream;
import java.io.IOException;
/*
для того, чтобы создать адаптер, нужно:
1. создать класс-адаптер, имплементирующий второй класс
2. создать в адаптере приватную ссылку
3. создать конструктор (с импортом ссылки первого класса), который будет ссылать нашу ссылку на первый класс
4. переназначить методы как на примере
*/
public class AdapterFileOutputStream implements AmigoStringWriter {
private FileOutputStream fileOutputStream; //приватная ссылка
public AdapterFileOutputStream(FileOutputStream fileOutputStream) { //конструктор с импортом
this.fileOutputStream = fileOutputStream; //ссылка на импорт
}
public void flush() throws IOException { //переназначение метода
this.fileOutputStream.flush(); //пример переназначения
}
public void writeString(String s) throws IOException {
this.fileOutputStream.write(s.getBytes());
}
public void close() throws IOException {
this.fileOutputStream.close();
}
}
package com.javarush.test.level19.lesson03.task02;
import java.io.IOException;
public interface AmigoStringWriter {
public void flush() throws IOException;
void writeString(String s) throws IOException;
void close() throws IOException;
}
Leave A Comment