電子書籍の厳選無料作品が豊富!

strutsを使用してデータベース接続を行っています。

ActionFormにはgetter、setterのみを記述、
Actionにはデータベース接続の確立、SQL文の取得、などを記述、

ActionFormにはgetter、setter、データベース接続の確立などを記述、
ActionにはfindForwardのみを記述、

現在、上記2通りの記述方法を使用しています。
そこで疑問なのですが、このまま2通りの記述方法を
使用するか、一つにするかを考えています。
特に、使用感に問題も無いのですが少々気になりました。
好みの問題等もあるのでしょうか。
よろしくお願い致します

A 回答 (3件)

ご指摘のように好みの問題かもしれませんが、


私は前者です。

ActionFormはあくまでFormとしてgetter、setterのみを定義して、
ロジックはロジックとして、Actionに持たせたほうがよいと思います。

もちろんアクションクラスにベタには書きませんが、
ロジッククラスを作っておいて、
アクションはロジッククラスを呼び出し、
ロジッククラスが、DB接続、SQL文発行しフォームに取得した値を設定し、
最後にアクションがフォワードする

といった形でしょうか。

このあたりは、No1さんもおっしゃるとおり
Strutsの各クラスの役割を理解して
明確にコーディング規約を作っておいたほうがよさそうですね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
アクションとフォームの役割をはっきりさせます。
その中でルールを定めます。

お礼日時:2006/07/16 20:42

こんにちは。



私も前者の方です。
もっともgetter/setter以外に、formに関するflag等の設定処理が若干入っていたりもしますが。

でも、現状一番問題なのは「2つが混在していること」じゃないでしょうか?
特に「データベース接続の確立」の処理が記述されている場所がばらばらっていうのは、リファクタリング最優先事項だと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やはり、統一させるべきなのですね。

皆様の言うとおり、ルール作りをはっきりとさせます。
この場を借りて、再び皆様にお礼を言わさせてもらいます。
どうも、ありがとうございました。

お礼日時:2006/07/16 20:45

で、結局何が聞きたいんでしょうか?


どっちがいいかアドバイスが欲しいということでしょうか?

それなら、どちらか一方に決めた方がいいと思います。
ある程度のルールがないと煩雑になりメンテナンス性が悪くなります。

もうひとつ言うと、ActionFormはパターンでいうところのValuObjectです。
なので、ActionFormにビジネスロジックは含めるべきではないですね。

何の為にStrutsを使っているのか、MVCモデルとは何かを調べてみてください。
    • good
    • 0
この回答へのお礼

こちらの言葉足らずで申し訳ありません。
StrutsやMVCモデルについて調べなおし、
ルールを定めようと思います。
まだまだ勉強不足だと痛感しました。
回答ありがとうございました。

お礼日時:2006/07/16 20:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!