这是我想知道如何做的事情,但找不到适合该问题的方法。
假设我有一个可以用于两个目的的类:上传和下载。本能地,我会创建一个有点像这样的对象:
public class File{
private FormFile uploadFile;
private File downloadFile;
private String uploadLocation;
private String downloadLocation;
//setters and getters
}
问题是,我希望每种类型只有一组访问器。例如,setFile(Object obj)
班级里只有一个人。但这会导致问题,因为 FormFile 和 File 是两个不同的对象。
然后我会求助于OOP。将我的对象更改为:
public interface File{
public void setFile(Object obj);
public Object getFile();
public void setLocation;
public String getLocation;
}
然后创建另外两个对象:
public UploadFile implements File{
private FormFile file;
private String location;
//implementation of methods
}
public Download implements File{
private File file;
private String location;
//implementation of methods
}
如果您清理代码中的其他内容,这可能会起作用。但我意识到这在之后会更难维护。是否有另一种解决方法可以做到这一点?
像:_
File file = new File.UPLOAD;
将限制用户:
仅使用方法setFile(FileForm file){ }
,然后setFile(File file){ }
将变得不可用。实例化时反之亦然File file = new File.DOWNLOAD
我并不是真的想解决这个问题。只是一个想法。