2011-08-04 5 views
2

私はStruts 2のいくつかの動作で使用されている反復コードをいくつか持っています。struts2ベストプラクティス - ヘルパーメソッドはどこに置くのですか?静的クラスOK?

もちろん、このコードは1つの場所にしか置かないので、メソッドにまとめて入れますそれ...どこ?

ベストプラクティスは何ですか?ヘルパーメソッドの種類ごとにヘルパークラスを作成しますか? 1つの大きなヘルパーメソッド? 1つの大きな静的クラス?いくつかの静的なクラス?

私はMVCを使用しています。

私はstackoverflow上の他の答えを読んだと誰もかなり私の質問に答えるようです。

ご協力いただきありがとうございます。例と

EDIT更新要求として:例えば

Iは、特定のオブジェクトが「されたときに記憶するセッションへのArrayListを追加するコードの行のカップルを持っています格付けされた '(そのセッションのため)。アプリケーション全体でいくつかのアクションで呼び出されます。

また、複数のJSPページに含まれるビューコンポーネントがあり、モデルの一部のデータを読み込む必要があります。私は各アクションにコードをコピー/ペーストする必要があります(明らかにこれを避けたい)。

希望が明確です。そうでない場合は教えてください。

+2

あなたが話している方法の種類のいくつかの例を与えることはできますか? –

+0

@Steven Benitez、ありがとう私はあなたが提案したようにいくつかの例を与えました –

+1

それは意味をなさないまたは静的メソッドを使用するスーパークラスを作成します。 –

答えて

2

私の一般的なルールは、メソッドが計算式の場合、言い換えれば関数が(数学のように)実行される場合、静的メソッドを持つクラスを作成し、その場所全体で使用するということです。

私は多くのプロジェクトで、文字列の操作や検証機能を持つjarファイルとしてインクルードすることはほとんどありません。

文字列の検証は良い例です。私はヌルまたは空の文字列をチェックしてブール値を返すために多く使うValidationクラスを持っています。

if(Validation.string(value)){ 
     // do magic - huzzah 
} 

ユーティリティメソッドをクラスにグループ化しようとすると、特に私がその場所全体を使用すると、私はクラスに分類しようとします。それは、再タイピング、私がいつでも持っていた良いアイデアのためのクラスの検索から私を救う傾向があり、更新、変更、オーバーロード、またはオーバーライドする必要がある場合に備えてコードの単一のインスタンスを提供します。

1

セッションに保存された複数のJSPページとオブジェクトに含まれるビューコンポーネントの場合、反復コードを避けるためにベースアクションクラスとサブアクションクラスを作成しました。

public class BaseAction extends ActionSupport implements SessionAware { 
    protected Map session; 
    protected ResourceBundle rb; 
    // common getters for shared view components and common setters 
    ... 
} 

-

public class SubAction extends BaseAction { 
    ... 
+0

ありがとう、これも良い答えです –

関連する問題