S2BlazeDSとS2JDBCはServiceパッケージで衝突

以前、ひがさんにアドバイスを頂き、HTML + Mayaa + SAStrutsをこれから調べなければいけないのですが、横フックで別のお仕事のお話が。。。



今度はプレゼンテーションが「AIR」になります。
後ろはSpring!!!は今の私にはありえない選択肢で、Seasar2を使います。



AIRですので、当然通信する部分は「S2BlazeDS」、データベース関係は「S2JDBC」でサクサク進めていこうと考えています。



あれ?



S2BlazeDSを通ってきたデータはServiceパッケージで受け取り、Logicパッケージを呼び出して、処理を行います。
今まで見てきたとおり、S2JDBCを使う時にはServiceクラス(パッケージ)(特にS2AbstractService)を使わないと、面倒ですので、Serviceクラス(パッケージ)+S2JDBCをセットで考えます。



図で表現すると、



AIR → S2BlazeDS → Service → Logic 
            Service → S2JDBC



となります。これは明らかにおかしいです。ServiceパッケージにDB制御の処理とプレゼンテーション層からへのIN/OUTの処理、2つの責務をコーディングする事になるからです。




S2BlazeDSを使用する場合、S2DAOを使い、



AIR → S2BlazeDS → Service → Logic → DAO



としないと、すっきりしないのですかね?





「Adobe Flex 3 & AIRではじめるアプリケーション開発」



今この本を電車の中で読んでいます。BlazeDSについての記述もあり、
かなりお勧めです。Chapter 5、Chapter 8は何度も読み返す事になると
思います。




S2JDBCはサクサク開発ができるので、かつS2JDBC-GenでService・Entity・Testクラスは自動生成してくれますので、どうしても使用したいので、



AIR → S2BlazeDS → Service → Logic → Service → S2JDBC



となるのでしょうね、構成は。さすがにServiceとServiceでは分からない為、



AIR → S2BlazeDS → ServiceIF → Logic → ServiceDB → S2JDBC



とパッケージ名を変えてみます。これでスッキリですね。



もしくは、Logicで行う処理をServiceDBに移動し、



AIR → S2BlazeDS → ServiceIF → ServiceDB → S2JDBC



とする方がきれいです。