CONTENT
こんにちは、大阪エンジニアのYです。
JAVAの実装について説明を聞いているとよく出てくる単語でBeans、DTO、Entityというものがあります。
改めて周りのエンジニアに話を聞いてみると、それぞれのオブジェクトに対する理解が曖昧な人が多く感じたので、今回はそれぞれのオブジェクトについてご紹介していこうと思います。
3つのクラスはいずれも大きな意味ではデータを保持するクラスとなります。
ですが、使用状況に応じて呼び方が変わるので、そのことを理解して説明の際に単語として使用しないと正しく相手に内容が伝わらなかったり・・・ということも発生しそうですね。
それでは早速、それぞれのクラスの持つ意味を紹介していきます。
【Beans】
Beans = JavaBeansの略称。
1つ以上のプロパティを持ち、メソッドを介してプロパティにアクセスをすることができるオブジェクトを指します。
プロパティのアクセス修飾子は「private」、プロパティにアクセスするためのメソッドのアクセス修飾子は「public」とする必要があります。(カプセル化のイメージ)
プロパティは公開せず、プロパティ値に応じたgetter/setterメソッドを用いて取得/設定を行うかたちになります。
ざっくり言ってしまうと、DTOもEntityもJavaBeansのパターンの1つとなるため、全部ひっくるめて「Beans」と表現して説明したとしても間違いではありません。
【DTO】
DTO = DataTransferObjectの略称。
読んで字のごとくデータを運ぶためのオブジェクトを指します。
Beansの説明でもありましたが、結局はBeansの1つなのでクラス内の実装内容はBeansと同じです。
異なるプログラム間やコンピュータ間でデータのやり取りを行うBeansをDTOと表現します。
【Entity】
永続化可能なBeansを指します。
永続化可能・・・と言われても分かりずらいと思いますので、もう少し分かりやすく言うと、DBのテーブルからのデータの取得やテーブルへの登録、更新等を行う際に、テーブル単位でデータを保持するためのオブジェクトと考えると良いかと思います。
要はJAVA-テーブル間でデータのやり取りをする際に使用するBeansと考えると分かりやすいのではないでしょうか。
Entityの場合、クラス名にテーブル名、プロパティ名にカラム名を設定します。
どうでしたか?
皆さんそれぞれのクラスの意味を正しく理解したうえで使用できていたでしょうか。
知っている方からすれば当たり前の内容ですが、もし知らなかった、思っていた内容と違ったという方はこの機会に正しい意味を覚えて貰えると幸いです!