これはどうしようかと思っていたのですが、問題に合った方法が見つかりませんでした。
アップロードとダウンロードという 2 つの目的を果たすことができるクラスがあるとします。本能的に、次のようなオブジェクトを作成します。
public class File{
private FormFile uploadFile;
private File downloadFile;
private String uploadLocation;
private String downloadLocation;
//setters and getters
}
問題は、タイプごとにアクセサーのセットを 1 つだけにしたいということです。たとえばsetFile(Object obj)
、クラスに 1 人しかいません。ただし、FormFile と File は 2 つの異なるオブジェクトであるため、これは問題を引き起こします。
次に、OOPに頼ります。オブジェクトを次のように変更します。
public interface File{
public void setFile(Object obj);
public Object getFile();
public void setLocation;
public String getLocation;
}
次に、他の 2 つのオブジェクトを作成します。
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
私は本当にこれについて何かを解決しようとはしていません。ちょっとした考え。