Java / WebApplicationでの話です。

たとえば、DBから、下記のようなDTOコレクションを取得します。

public class Model {
    private Long id;
    private String data;
    private Date date;
    private boolean enabled;

    ...getter setter略...
}

以下、ビジネスロジック例とします。

List<Model> entities = modelDao.findAll();

その後、Date型やBoolean型を正規化し、view用モデルクラスに入れなおします。

public class ModelView extends Model {
    private String dateView;
    private String enabledView;

    public ModelView(Model model) {
        this.id = model.getId;
        this.data = model.getData();
        this.dateView = DateUtils.format(model.getDate(), "yyyy-MM-dd");
        this.enabledView = model.getEnabled() ? "YES" : "NO";
    }
    .... getter setter略 ....
}

上記クラスを使って、

List<Model> entities = modelDao.findAll();
List<NodelView> views = new ArrayList<ModelView>();
if (entities != null || entities.size() > 0) {
    for (Model model : entities) {
        views.add(new ModelView(model));
    }
}
return views;

というのが一番メモリ的にもパフォーマンス的にもいいのかと思いますが、
こういったケースで推奨されている実装はあるのでしょうか?

ご回答ありがとうございました。
まず、Modelクラス内に取得メソッドを、という回答についてですが、
すみません、前提条件を記載しておりませんでした。

基本的に、リクエストスコープの変数をJSPなりJSTLで出力しようとしていました。
今回の場合、以下のような形になると想定します。

<c:forEach var="o" items="views">
    <c:out value="${o.dateView}" />
    <c:out value="${o.enabledView}" />
</c:forEach>

この方法では、getter/setter及び、ローカル変数の定義が必要だったと思います。
ですが、このModelクラスはSpringJPAのEntity定義に基づいており、
いろいろDB関連の定義が多く含まれているので、あまり例外的な定義したくありませんでした。

また、JSTLタグlibraryのfmtなどを使う方法もあったかと思いますが、
個人的な理由ですが、HTML/JSPが好きでなかったため、サーバーサイドでリクエストスコープに置く変数そのものをVIEW用に正規化した状態で持ちたいです。

そのため、
ListからListに詰め替えるというのは非効率的だし、
それぞれのセッションが同時にこの関数を実行したときに、メモリの心配もあるなと思い、
なにかエコな実装があるかなと思った次第でした。