ひがやすを技術ブログ

電通国際情報サービスのプログラマ

POJOとAnnotation

でも、最近気になっている事があります。「ドサクサに紛れて、POJOと呼ぶのはちょっとオカシイオブジェクトが無いか?」そうです、EJB3.0のオブジェクトです。Annotationによって修飾されたオブジェクトをPOJOと呼ぶのは、抵抗があります。何故なら、オブジェクトが期待される全ての機能を実現する為に、明らかにAnnotationに依存しているからです。

Annotationで修飾されたオブジェクトもPOJOと呼んでいいと思いますよ。
技術的なことで言えば、Annotationの情報は、コンパイル後にクラスファイルから取り除くこともできます。Javadocで情報を埋め込むのと実現方法が違うだけで、ソースに情報を埋め込んでいる点では同じです。独自のJavadocの情報を埋め込むとPOJOじゃなくなるのか、そういうことはありません。
また、メタデータは、ソースと同じ場所にあった方がいいと思っています。変更等があったときに修正し忘れることを減らすためです。関連のある情報は、近くにあった方がいいに決まってます。
クラス単位の情報は、Annotationを使う。インスタンス単位の情報および後から変更するものは設定ファイルなどを使うということでいいんじゃないかと思います。
後、これも重要ですが、業界的にPOJOとAnnotationによるEoDに向かっているので、それを妨げる(反対する)のは得策ではないということです。「最終的に開発が楽になるなら、Annotationに依存するくらいは、大目に見てPOJOと呼ぼうよ」そういうことです。