重构具有相同逻辑但使用不同类的方法的最佳方法是什么(在 Java 中)?这么说吧
Method1(FileInputStream obj, OutputStream o){
//stuff
while(something){
//---
//some code
//---
obj.read();
//---
//some code
//---
o.write(..);
//code
}
//code
}
然后我就有了
Method2(InputStreamReader obj, OutputStreamWriter os){
//stuff
while(something){
//---
//some code
//---
obj.read(..);
//---
//some code
//---
os.write();
//code
}
//code
}
一种方法处理二进制文件,另一种方法处理文本。理想情况下,我想要的是有一个读取过程写入并隐藏所有特定信息
最佳答案
最好的方法是使用正确的接口(interface):
void method2(Reader obj, Writer os){
// code...
}
然后像这样使用InputStreams
method2(new InputStreamReader(fileInputStream), new OutputStreamWriter(outputstream));
为什么这样更好?
这更好,因为您正在抽象该方法的工作方式。您是说您不关心实现是什么,只要它符合 Reader
或 Writer
即可。因此,用户有责任将 InputStream
更改为 Reader
。 不是你的。如果其中抛出异常,那么您不需要需要捕获它。它被抛出到客户端代码中。这是一个重要的说明。
关于java - 如何重构具有相同结构、不同类的方法(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12286982/