POJO,Bean,DTO,Entity,VO
VO (Value Object)
オブジェクトとしての塊というより、プロパティを基準にしたクラス。
値の設定はコンストラクタのみでゲッターは持っているがセッターを持たない(値は不変)。
DDD(domain driven design:ドメイン駆動設計)のデザインパターンとされる。
DTO (Data Transfer Object)
異なるレイヤー間(モデル層、ビュー層など)でデータを受け渡すのに使用する。
データは最終的にはDB処理に利用されることが前提とされているため、シリアライズ可能であることもDTOの条件となる。
ゲッターセッター両方持ち、値の変更が可能。
Entity
永続化可能なJavaオブジェクト。
Entityの1インスタンスがDBのレコードの1行に相当する、というイメージ。
DBのテーブル単位でEntityを利用する場合、必ず主キーを所有している必要がある。
Form
画面上での入力値を保持するクラス。
Model
Springが用意するMapオブジェクトでViewに渡すオブジェクト。
FormはModelに格納されて画面に渡される。
POJO(Plain Old Java Object)
上記のものの総称。
Javaで記述されるオブジェクトのうち、特定のフレームワークやオブジェクトモデル、規約などに縛られず、また、これらに依存しないシンプルな仕様のもの。
「昔からある単なるJavaオブジェクト」の意。
Bean
Sun Microsystems社のJavaBeans仕様に準拠した再使用可能なオブジェクト。
・最低限、クラスにはプロパティ(フィールド)が必要
・プロパティはメソッドを使用する他のJavaクラスに公開される
・ただし、アクセス修飾子はprivateとし、次のメソッドをコールする必要がある
set PropertyName
get PropertyName
※PropertyNameはプロパティの名前。
★JavaBeansを使用する3つの利点
1.標準コンポーネント・モデルとしての認知度が高い
JavaBeansはSun Microsystems社のオープン標準であり、誰でも自分の製品にJavaBeansの設計パターンでクラスを実装して自分のアプリケーションに組み込むことが出来る。
Java開発および配布環境を生産する複数のハードウェアおよびソフトウェア・ベンダーからの幅広いサポートが可能になる。
2.プラットフォームに依存しない
JavaBeansはプラットフォームに依存しないので、一式のJavaBeansを作成し、コードを変更せずに異種環境に配布可能。
異なるハードウェアやOSの互換性の問題を気にすることなく、サード・パーティ製のJavaBeansをアプリケーションで再使用出来る。
3.サード・パーティ製コンポーネントに対応しやすい
入手可能な多数のサード・パーティ製JavaBeansを使用して、アプリケーションに組み込み、カスタマイズできる。
既存のコンポーネントを組み込み、カスタマイズすることで、開発時間を大幅に短縮出来る。