2010-11-25 2 views
14

私はBeanにいくつかのJSPチュートリアルを行っていますが、Beanクラスのポイントは何か分かりません。それはすべて、メソッドを取得し、設定することです。なぜ我々はそれらを使用するのですか?豆のポイントは何ですか?

public class UserData { 

String username; 
String email; 
int age; 

public void setUsername(String value) 
{ 
    username = value; 
} 

public void setEmail(String value) 
{ 
    email = value; 
} 

public void setAge(int value) 
{ 
    age = value; 
} 

public String getUsername() { return username; } 

public String getEmail() { return email; } 

public int getAge() { return age; } 

}

とJSPは

<jsp:useBean id="user" class="user.UserData" scope="session"/> 
<HTML> 
<BODY> 
You entered<BR> 
Name: <%= user.getUsername() %><BR> 
Email: <%= user.getEmail() %><BR> 
Age: <%= user.getAge() %><BR> 
</BODY> 
</HTML> 
+0

関連:http://stackoverflow.com/questions/1727603/places-where-java-beans-used Javabeansがなければ、あなたは 'Object []'や 'Object [] []'や 'Map 'などで終わるでしょう。再利用可能で自己文書化されていないか、論理)。 – BalusC

答えて

11
  1. AビーンはJavaの "ライトワンス、実行どこでも" パラダイムのすべての利点を取得しています。 アプリケーション ビルダー・ツールに公開されるBeanのプロパティー、イベント、およびメソッドを制御できます。

  2. Beanは異なるロケールで正しく動作するように設計されており、 は世界市場で役立ちます。

  3. 人がBeanを設定するのに役立つ補助ソフトウェアを提供することができます。このソフトウェアは で、そのコンポーネントの設計時パラメータが設定されている場合にのみ必要です。 は、実行時環境に含める必要はありません。 Beanの構成設定を永続ストレージに保存し、後で に復元することができます。

  4. Beanは他のオブジェクトからイベントを受信するために登録し、 が他のオブジェクトに送信されるイベントを生成することがあります。

スクリプトレット(これら<% %>のもの)を使用することは、確かに非常にタグライブラリ(のようJSTL)とEL(Expression Language、それら${}もの)を超えるの誕生以来推奨され10年前スクリプトレットの主な欠点は、以下のとおりです。

  1. 再利用性:あなたはスクリプトレットを再利用することはできません。

  2. 置き換え可能:あなたはスクリプトレットを抽象化できません。

  3. OO-能力:継承/合成を使用することはできません。

  4. デバッグ可能性:スクリプトレットが例外を半分スローすると、空白のページが表示されます。

  5. テスト容易性:スクリプトレットはユニットテスト可能ではありません。

  6. 保守性:混乱している/混乱した/複製されたコードロジックを維持するためにより多くの時間が必要です。

1

ただし、結果はコードの両方がロジックの世話をし、コードはの美学の世話をしていることになり、豆なしでJSPを持つことができますサイトが混乱する。これは理想的ではありません。なぜなら、ほとんどの状況では、あるグループの人々が論理をコーディングし、別のグループの人々が美学を世話しているからです。豆は、ウェブサイトを構築する人々の生活を楽にします。

また、Beansを使用するとコードを再利用することができます。これは、コードを使用するもう1つの理由です。

5

JavaBeansの主な理由は、再利用性です。 JavaBeansは、JSP、サーブレット、その他のJavaテクノロジで使用できます。

多くのオブジェクトを1つにカプセル化するために使用されるシンプルなシリアライズ可能なオブジェクトです。つまり、各属性を個別にワイヤーに送信することについて完全に定義されたBeanを送信することができます。

3

アクセサー(ゲッター)メソッドとミューテーター(セッター)メソッドは、通常、カプセル化を提供するために使用されます。インスタンス変数はprivateであるため、これらのメソッドを使用してクラスの外部にしかアクセスできません。

だからあなたのコードを使用する他の人のコードを壊さずに実装コードを変更する能力は、の主なメリットはです。

2

私はここでJavaFX Properties and Bindingを読んでいました。私は実際にここにJavaBeansの意味を持っています。段落です。

Javaプログラミング言語は、オブジェクト内のデータ をカプセル化することが可能となり、それはあなたが定義する方法について 命名規則任意の特定を強制しません。たとえば、コード はPersonクラスを定義することができ、Personクラスはファーストネームと のラストネームをカプセル化します。しかし、命名規則なしでは、異なるプログラマが これらのメソッドに異なる名前を選択する可能性があります。read_first()、firstName()、 getFN()などはすべて完全に有効な選択肢です。ただし、 は、これらの名前が他の開発者にとって意味のあるものであるという保証はありません。

JavaBeansコンポーネントアーキテクチャでは によってこの問題が解決され、 プロジェクト間で一貫性をもたらす簡単な命名規則が定義されています。 JavaBeansプログラミングでは、 メソッドの完全なシグネチャは、public void setFirstName(String name)、public String getFirstName()、public void setLastName(String name)、およびpublic String getLastName()です。このネーミングパターンは、人間プログラマとNetBeans IDEなどの編集ツールとの間で容易に認識できます。 JavaBeansの用語では、Personオブジェクトには のfirstNameプロパティとlastNameプロパティが含まれています。

JavaBeansモデルは、複雑なプロパティタイプの とイベント配信システムのサポートも提供します。また、多くのサポート クラスも含まれています。これらのクラスはすべて、java.beansパッケージの下でAPIとして利用できます。 したがって、JavaBeansプログラミングをマスターするには、 の命名規則とそれに対応するAPIを学習する必要があります。 (一般的なJavaBeansのバックグラウンドの詳細については、 を参照してください。JavaチュートリアルのJavaBeansレッスン を参照してください)。

1

主にREUSABILTYに使用されます。これは、シンプルなシリアライズ可能なオブジェクトで、多くのオブジェクトを1つにカプセル化するために使用されます。

関連する問題