For faster navigation, this Iframe is preloading the Wikiwand page for Plain Old Java Object.

Plain Old Java Object

Plain Old Java Object (POJO) は、あるJavaオブジェクトがEJB(特にEJB 3より前のEJB)のように特殊なものではなく、ごく普通のJavaオブジェクトであることを強調した名称。設計はシンプルであればあるほど良いと主張する人たちが好んで使用する。

概要

[編集]

2000年9月にマーティン・ファウラーとレベッカ・パーソンズ、ジョシュ・マッケンジーがこの用語を使い始めた。「システムに普通のオブジェクトを使うことに強い抵抗を持つ人が多いのはなぜかと考えたとき、それは単純なオブジェクトに良い名前がついていないのが原因だという結論に達した。そこで我々が名前をつけたら、それがとても流行りだした。」[1] この命名法は、テレフォニーにおけるPOTS (Plain Old Telephone Service) や、C++で書かれているがC言語の機能しか使わないPODS (Plain Old Data Structures英語版) など、高級な新機能を使わない技術に対する既存の用語と同じパターンに従っている。

この用語が広く受け入れられた背景には、複雑で特殊なオブジェクトフレームワークと対照的な、一般的で理解しやすい用語が求められていたことがあると思われる。この用語は、JavaBeansEnterprise JavaBeansの名前が衝突しているJava "bean"用語よりも魅力的である。JavaBeansは、厳格な命名規約を持つシリアライズ可能なPOJOであるとほぼ言える一方、Enterprise JavaBeansは単一クラスではなく、まったくのコンポーネントモデルである(ただしEJB 3以降は差が減っている)。

POJOの概念は、明らかにPOJOという用語より前から存在する。なぜなら、オブジェクトクラスの自然なありさまとは、何ら特別なものではないからである。この用語の功績は、何らかのフレームワークを使う利点がその複雑さを補ってあまりあるかどうかということを開発者に考えさせるという点にある。シンプルな設計の方が優れている場合もあるということを思い出させる明確な用語がなくては、複雑なフレームワークが十分な理由のないままシステムアーキテクチャに含まれてしまいやすい。POJOによる設計が一般的になるにつれて、大規模フレームワークの機能の一部はPOJOでも実現できることが明らかになってきており、実際に必要な機能領域に対する選択肢は増えている。HibernateSpringがその例である。

曖昧さの可能性

[編集]

2005年11月時点で、"POJO"という用語は主に、いかなる(主要な)Javaオブジェクトモデル、規約、フレームワーク(たとえばEJB)にも従わないJavaオブジェクトを指して使われている。しかし、モデルやフレームワークが将来的に変化する可能性や、またこのような分類自体が文脈に依存するという事実を考慮すると、その定義は本質的に不安定で曖昧である。

厳密に言えば、POJOは全てのJavaオブジェクトを指す用語とも言える。この解釈に基づけば、POJOに関連する記述は全てのJavaオブジェクトに例外なく当てはまらなければならない。しかし、多くの人はこの意見に反対している。

EJB 3の仕様はPOJOプログラミングモデルであることを宣言しており、EJB3 Session BeanをPOJOとして記述している。ただし、通常はアノテーションを必要とする。

関連項目

[編集]

外部リンク

[編集]
{{bottomLinkPreText}} {{bottomLinkText}}
Plain Old Java Object
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?