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つの責務をコーディングする事になるからです。
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
とする方がきれいです。