良いコ-ドへの道―普通のプログラマのためのステップアップガイド
最終回 配列/コレクションを利用した抽象化―その4 Step3:関連のあるデータをオブジェクトに
この記事を読むのに必要な時間:およそ 3 分
Step3:関連のあるデータをオブジェクトに
ファイル一覧とファイルサイズを保持するクラスImageFilesで,
リスト5 Step3Action
@Path("/")
public class Step3Action extends Action {
public ServletContext context;
public ImageFiles foodFiles; ┓
public ImageFiles animalFiles; |
public ImageFiles landscapeFiles; ┛①
public ActionResult step3() {
foodFiles = getFiles("/images/food");
animalFiles = getFiles("/images/animal");
landscapeFiles = getFiles("/images/landscape");
return new Forward("step3.jsp");
}
private ImageFiles getFiles(String path) {
File[] files = new File(context.getRealPath(path))
.listFiles();
return new ImageFiles(files,
FileUtil.sizeOfFiles(files));
}
public static class ImageFiles { ┓
private final File[] files; |
private long sizeOfFiles; |
|
public ImageFiles(File[] files, long sizeOffiles) { |
this.files = files; |
this.sizeOfFiles = sizeOfFiles; |
} |
|
public File[] getFiles() { |
return this.files; |
|
} |
|
public long getSizeOfFiles() { |
return this.sizeOfFiles; |
} |
} ┛②
}
フィールド変数が整理されてすごくわかりやすくなったっすね
このように,
たとえば拡張子を指定して,
public static class ImageFiles {
:
public File[]
getFilesByExtension(String ext) {
:
}
}
それではそろそろ抽象化を……。
ふぉっふぉっふぉっ,
かしこ,
バックナンバー
良いコ-ドへの道―普通のプログラマのためのステップアップガイド
- 最終回 配列/コレクションを利用した抽象化―その5 Step4:配列/コレクション化して抽象化する
- 最終回 配列/コレクションを利用した抽象化―その4 Step3:関連のあるデータをオブジェクトに
- 最終回 配列/コレクションを利用した抽象化―その3 Step2:可読性を高めるためのメソッドの抽出
- 最終回 配列/コレクションを利用した抽象化―その2 Step1:ベタなコードで書いてみる
- 最終回 配列/コレクションを利用した抽象化―その1 配列/コレクションって何?
- 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その4 Step3:リフレクションAPIで変換ルールを動的に適用する
- 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その3 Step2:メタ情報をExcelに移動する
- 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その2 Step1:ベタなコードで書いてみる
- 第5回 メタプログラミング―Excelを使ったDSLを作ろう―その1 メタプログラミングとは?
- 第4回 コードの分割―その6 Step4:クラスに分割する