Рассмотрим следующий класс, где я перезапись OutputStream
Каков наилучший способ инициализации следующего экземпляра в моем классе?
public class MyOutputStream extends java.io.OutputStream {
public String clientId = null;
public String fileId = null;
public String filelocation = null;
public DBClient clientobj = null;
public OuputStream out = null;
public MyOuputStream(String clientid, String fileid, String filelocation) {
this.clientid = clientid;
this.fileid = fileid;
this.filelocation = filelocation;
}
public void write(byte[] bytes) throws IOException {
out.write(bytes);
}
private DBClient getInstance(String clientid, String fileid) throws DBClientException {
return this.clientobj = DBClient.getInstance(clientid, fileid);
}
private OutputStream getOuputStream(DFSClient clientobj) throws Exception {
return this.out = clientobj.getOutputStream();
}
}
В приведенном выше коде, чтобы написать с помощью
MyOuputStream
в объект DBClient и OuputStream должен быть инициализирован перед операцией записи
Кто-то, пожалуйста, предложите мне подходящую схему проектирования, чтобы решить эту проблему.
Я не уверен, почему вы распространяете 'java.io.OutputStream' для начала, если вы собираетесь просто создать другое поле« OutputStream »и использовать его методы экземпляра. Что касается вашего вопроса, то все, что должно быть инициализировано до вызова методов экземпляра, должно быть включено в конструктор объекта. – Nerdizzle