2011-03-18 15 views
1

私はasp.net webformsアプリケーションを使用しています。ここで、aspxページはplain .netオブジェクトの階層からデータを取得します。asp.netの静的関数

現在、階層は完全に動的であり、インスタンス化され、各ユーザーセッションごとに1回格納されますが、完全な階層を作成せずにいずれかのクラスで関数を使用したいと考えています。 (私はこのクラスにある関数を繰り返さないようにしたいが、クラスのコンテキスト外で使う必要がある)。

例示的な例として、ショッピングカートクラスを備えたウェブショップ型アプリケーションを考える。ショッピングカートクラスの中には、「これを買うと3つ買う」というような割引を適用する関数があります。ショッピングカート全体を作成することなく、どこか他の場所でコードを繰り返さずに、この割引機能を使用できるようにしたいと考えています。

これはIIS7で実行されているWebベースのアプリケーションであることを考慮すると、最適なアプローチですか?

I必要があります。この機能アウト

  • ブレークとは に(のみ 静的なヘルパー関数を含む)別のクラスをそれを置きますか?
  • 現在のクラスの この機能を静的にするだけですか?
  • の方法を使用して重複を避けますか?

答えて

0

私にはユーティリティメソッドのように聞こえます。そうであれば、Utilsクラスを作成してください。 見る:Creating An Utilities Class?

+0

私はユーティリティクラスを持っていますが、この場合、このコードをそこに入れるのは自然なことではありません。これは実用的な方法ではありません。また、外部からクラス固有の関数を呼び出すことも間違っていると感じています。クラスごとにユーザーごとに生成される静的メソッドがあると、何が起きるか心配です。 – Console

0

あなたのコードを見ることなく、私は最良の方法を確信していません。あなたのコードの簡略版を投稿できますか?

他のすべてのクラスが継承する必要がある関数を含む基本クラスを作成することは意味があります。

+0

私はコードを投稿しませんでした。なぜなら、このケースでは本当に助けにならないからです。特定の問題を解決する正しい方法は、同様の状況では「ベストプラクティス」の一種になると思います。私はしかし、私が意味するものを説明するための例を追加しました。 – Console

+0

私はあなたが意味することを理解しています。しかし、オブジェクト自体についてもう少し知ることは、より適切な答えを与えるのに役立ちます。たとえば、そのオブジェクトで使用したいメソッドが論理的にそこに属していない場合、私はそれを移動します。しかし、それがあなたのオブジェクトのすべてに関係するなら、私は基底クラスを検討するかもしれません。お役に立てれば。 – fehays