ファイルストアにはさまざまなサイズの画像が含まれています。クライアントは要求された次元のイメージを取得するよう要求しなければならない。クライアントは、画像の幅と高さを指定する代わりに、画像の幅と高さを指定する必要はありません。どのデザインパターンが次のシナリオに適していますか?
private static final int DOWNLOAD_MODE = 0;
private static final int VIEW_MODE = 1;
private static final int COLUMN_MODE = 2;
private static final int ROW_MODE = 3;
private Map<String, Integer> modeHash;
{
modeHash = new HashMap<String, Integer>();
modeHash.put(“download”, DOWNLOAD_MODE);
modeHash.put(“view”, VIEW_MODE);
modeHash.put(“column”, COLUMN_MODE);
modeHash.put(“row”, ROW_MODE);
}
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String author = “”;
String url = req.getRequestURI();
int action_mode = 0;
String fileid = request.getAttribute(“File_id”);
String downloadMode = request.getAttribute(“download-mode”);
action_mode = modeHash.get(downloadMode);
String userAgent = req.getHeader(“user-agent”);
try {
//Collecting file meta details and setting it in a hash map (hMap)
if(hMap != null) {
readFileContent(action_mode, hMap, req, res);
} else {
//Print some error
}
} catch(Exception ex) {
}
}
//And other util methods like
private HashMap<String, String> getParamsFromURL(int action_mode, HashMap<String, String> hMap,HttpServletRequest req, HttpServletResponse res) {
//Populating file meta info to hash map
}
private HashMap<String, String> getFileMeta(HashMap<String,String> hMap, String file_information, int action_mode) throws Exception{
//Does some file permission check here and populates meta in cache
}
private JSONObject getSizeDetails(int mode, String fileid){
//Get image dimensions
}
private void getReadStream(int action_mode, HashMap <String,String> hmap,HttpServletRequest req, HttpServletResponse res) throws Exception{
//File read
}
は、コード内あちこちで、ファイルのメタの詳細を収集し、次のようにファイルの内容を読み込むための
サーブレットがあると、それはあまりにも不器用なります。ファイルストリームコンテンツ1が希望
を読ん
- ファイルレベルの権限チェック
- を処理するコードを整理するためにいくつかのより良い方法を提案しますこの場合のスーツ
i]天気オブジェクトを作成し、ハッシュの代わりにオブジェクト状態変数を使用するか、またはハッシュマップのファイルメタの詳細を収集するあなたは?
最初はPOJOモデルでやっていると思っていましたが、クライアントがJSON応答を必要としていたため、POJOがうまくいくと思います。ここで、クライアントは元のファイルの内容を必要とします。だから、私はPOJOはここでスイートにはならないと思って、私のファイルに関するすべてのメタの詳細を保持する構造のようなハスプマップを考え出した。ファイルコンテンツのメタ詳細を保持するhashMapではなく、これを整理するより良い方法はありますか? –