17
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

BeanとUtility

Posted at

ある日の偉い人「Beanは部品で機能をまとめたものな」
俺「ほう」
またある日の偉い人「Utilityクラスっていう共通処理を集めたクラスがあるんな」
俺「ほうほう」

……どっちも機能をまとめた奴じゃねえか!何が違うんだおまえら!とか1人で勝手に激おこプンプン丸状態だったので調べてまとめ。
ただし間違えてるかもしれない。

#定義
##Bean
特定の機能を持ったプログラム。
privateな変数(プロパティ)とpublicなアクセス経路(アクセスメソッド:getter/setter)を持つ。
インスタンス化して用いる。
###サンプル

InfoBean.java
public class InfoBean {
	/** ID */
	private String id;
	/** 名前 */
	private String name;

	/**
	 * IDを返却
	 * @return id
	 */
	public String getId() {
		return id;
	}
	/**
	 * IDをセット
	 * @param id ID
	 */
	public void setId(String id) {
		this.id = id;
	}
	/**
	 * 名前を返却
	 * @return name
	 */
	public String getName() {
		return name;
	}
	/**
	 * 名前をセット
	 * @param name 名前
	 */
	public void setName(String name) {
		this.name = name;
	}
}

##Utility
staticな変数とstaticなメソッドのみからなる。
インスタンス化を避けるため コンストラクタは基本的にprivateかprotectedで宣言。
###サンプル
java.lang.Mathとかあのあたり
http://docs.oracle.com/javase/jp/6/api/java/lang/Math.html

#まとめ
たぶん「インスタンス化して使うかどうか」が一番の違いだと思う。
インスタンス化するってことはそいつが死ぬまでプロパティが保持されるってことになるので(上の例だとIDとNameをそれぞれ持たせたのを作れる)
Beanの利用例としてあるメソッドの引数として生成したインスタンスをぶん投げたりして 共通データ を利用したり出来る。
一方でUtilityは 共通処理 としてあらゆる場所から引っ張ってくることが出来る。

ということで
Bean = 共有するデータ
Utility = 共通する処理

とおぼえておくことにした。 なおあっているのかは不明の模様

17
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?