「そこにいるよ。」

「それについて考え、あなたにとって非常に役立つ小さなレッスンをもう 1 つ教えることにしました。プログラマーとして働くまでは、特別な用語に遭遇することはおそらくないでしょう。そこで、ここでいくつかの一般的な概念を紹介したいと思います。」

「約 10 年前、Enterprise  Java Beans  ( EJB )が広く使用されるようになりました

「JavaBeansってどういう意味ですか?」

「JavaBeans は基本的にコーヒー豆を意味します (Java はコーヒーの一種です)。これは IT ユーモアです。」

「プログラムのビジネス ロジックは、メッセージを交換したり、自分自身を保存したり、名前でお互いを検索したり、その他さまざまなことができる、高レベルのオブジェクト、または Bean のグループの形式をとりました。通常、これは特別なスーパー派手な親クラスですが、他のアプローチもありました。そのようなオブジェクトの動作は厳しく規制されていました。」

「最も有名な EJB Bean の 3 つのタイプは次のとおりです。」

エンティティ Bean は、特定のデータを保存することを目的とした Bean です。このタイプの Bean には、それ自体とそのフィールドをデータベースに保存するためのメカニズムが組み込まれています。このタイプのオブジェクトは破棄され、後でデータベースから再作成できます。しかし、データを保存する以外にはロジックはありません。」

セッション Beanは機能 Bean です。各セッション Bean には独自の機能があります。1 つはあることを行い、もう 1 つは別のことを行います。このような Bean は、独自のデータではなく、他のオブジェクトや Bean と連携します。」

セッション Bean は2 つのカテゴリに分類されます。」

ステートレス セッション Bean は、機能するために必要な重要なデータが内部変数に格納されていない Bean です。このタイプの Bean は破棄してから再作成することができ、以前と同じように機能を実行します。」

ステートフル セッション Bean は、動作時に使用するデータを内部に格納する Bean です。このような Bean のメソッドを呼び出すと、後続の各呼び出しでは、以前の呼び出しで Bean に渡されたデータの一部を使用できます。それでも、この Bean通常のオブジェクトと同じではありません。」

「しかし、Bean を使用することもそれほど素晴らしいことではなく、すぐに振り子は反対方向に振れました。そして開発者は通常のオブジェクトをより頻繁に使用するようになり、特別な名前さえ考え出しました。」

POJOは、単純な古い Javaオブジェクトです 。これらのオブジェクトにスーパー関数はなく、スーパーオブジェクトを継承していません。それらは単なる通常の Java オブジェクトでした。 

「実際に EJB を理解すると、違いが理解できるようになります。大まかに言えば、POJO はナイフ、EJB は電話をかけるのにも使用できるスイス アーミー ナイフです。」

「興味深い比較ですね。」

「はい、そしてもう一つあります。」

「時間が経つにつれて、オブジェクトとクラスは特殊化され始めました。その結果、開発者は特定の役割を特定し、対応するオブジェクトに新しい名前を付けるようになりました。」

「データ転送オブジェクト ( DTO ) は、データを転送するために作成されたオブジェクトです。これらのオブジェクトには通常 2 つの要件があります。a) データを保存できること、b) シリアル化可能であること。言い換えれば、これらのオブジェクトはデータの転送にのみ使用されます。 。」

「オブジェクトを作成し、ビジネス ロジックから必要なデータをオブジェクトに書き込み、JSON または XML にシリアル化し、必要な場所に送信します。またはその逆: メッセージが到着したら、それを DTO オブジェクトに逆シリアル化します。 、そこからデータを抽出します。」

エンティティはデータベースに保存されるオブジェクトです。しかし、エンティティにはビジネス ロジックは含まれていません。これはビジネス モデルのデータであると言えます。」

「データ アクセス オブジェクト ( DAO )もあります。DAO は、オブジェクトをデータベースに保存したり、データベースから取得したりするために使用されます。エンティティにはロジックがないため、これを実行しません。したがって、保存することができません」どこでも何でも。」

例:

DAOとエンティティの関係
UserEntity user = UserDAO.getUserById("1535");
if (user.getAge() > 18)
{
 user.setMobilization(true);
 UserDAO.save(user);
}
コメント
UserEntity is a class that stores user data
UserDAO is a class that retrieves data (UserEntity objects) from the database and stores it there again after modifying it.

"それは今のところすべてです。"

「これは小さな入門レッスンではありますが、今すぐにはまだそれ以上のことを理解することはできません。これらのトピックのそれぞれについて数日かけて話し合うこともできますし、EJB について説明するのに何年も費やすこともできます。」

「しかし、会話やメッセージ、フォーラム、インタビューでこれらのことに遭遇した場合、少なくとも何が言われているか想像できるようにしてほしいと思います。」

「うーん。ありがとう、ビラーボ。そうですね、私には専門用語が足りないようです。もう一度、本当にありがとう。」