AJOってどうよ?

大量のXML、特定のAPIに依存した実装、明らかに多すぎる機能。を持つオブジェクトとして、
EJBがあります。3.0では、それらが軽減されるような方向にあるのは知っての通り。


EJBに対して、特定のAPIに依存しない実装、必要最小限の機能。を持つオブジェクトを最近では、POJOと呼びます。


でも、最近気になっている事があります。
「ドサクサに紛れて、POJOと呼ぶのはちょっとオカシイオブジェクトが無いか?」


そうです、EJB3.0のオブジェクトです。
Annotationによって修飾されたオブジェクトをPOJOと呼ぶのは、抵抗があります。
何故なら、オブジェクトが期待される全ての機能を実現する為に、
明らかにAnnotationに依存しているからです。
Annotationに依存しているという事は、つまりは特定のAPIに依存していると言う事になります。


と、言う訳で、こういうオブジェクトをAnnotated Java Object(AJO)と呼ぶのは如何でしょうか?


時流は、AnnotationによってXMLによる難解な設定が必要無くなる事で、
実装フェーズにおける工数が少なくなるとされています。
しかし、テクノロジが機能を増やす過程の中で難解になっていくのを防ぐのは
かなり難しい局面もあるかと思います。
それを忘れない為にも、そもそもPOJOとは違うんだ
と言う事を認識しておいた方が良いかなぁ…と思います。


重さ具合を比較すると以下のようになるかと思います。


EJBとか重いアレ > Annotated Java Object(AJO) > POJO