2

それらは同じことをしているように見えます-プレゼンテーション層のロジックをビジネス層の複雑さから分離します。違いは何ですか?

4

1 に答える 1

3

どちらもコンポーネントの複雑さを分離しようとしますが、次のようになります。

  • View Helperの目的は、ビューを軽量化することです (実際には、ビューのみを表示するようにします)。
  • ビジネス デリゲートは、2 つのコンポーネントを分離する予定です (配管作業の詳細は、その間にある 3 つ目のコンポーネントに任せます)。

彼らはある意味で似ているので、あなたの混乱がどこから来ているのか分かります. ただし、実際には、次の 2 つの異なる問題に対処します。

ビューヘルパー

システムが成長するにつれて、人々はビューにコード (JSP など) を配置し始める傾向があり、ビューはますます複雑になり始めます。ビューに多くのコードを含めることは想定されていません。データのみを表示することになっています。たとえば、JSP に大量の計算を入れると、一方ではコードが HTML タグに隠され、他方ではシステム内のどこでも再利用できなくなります。このようなコードでメンテナンスを行う必要があると想像してください。あなたは夢中になるでしょう。

View Helperは、すべての複雑なコードを JSPに保持するのではなく、クラスを作成して重い作業を実行し、JSP 呼び出しを行うことでView をより単純にすることで、それを回避する方法を教えてくれます。Helper

ビジネスデリゲート

MyCalculatorたとえば、多くの変更を行う外部コンポーネント (たとえば EJB ) を呼び出すコンポーネントがある場合、コンポーネントWeatherEJBも大幅に変更する必要があります。

たとえば、 をシステムの非常に重要なクラスと考えMyCalculatorてください。常に変更する必要はありません。他のものを壊したらどうしますか?誰かが別の支店でも変更している場合はどうなりますか?

その上、他の誰かが変わるたびにではなくMyCalculatorビジネスが変わったときにのみ変更したいと思うでしょう。

他の10 個のコンポーネントのMyCalculatorように呼び出すと、これがさらにクレイジーになることがわかります。毎日変えていきます!

Business Delegateが助けになります。直接呼び出すのではなく、呼び出しWeatherDelegateを実行できるクラスを追加して、それWeatherEJBを使用します。MyCalculatorWeatherEJB

このように、WeatherEJB変更のたびに変更する必要はありませんMyCalculator。それに応じて編集するだけですWeatherDelegate(また、いつか Web サービスなどで天気を取得する方法を変更したい場合、編集する必要があるのはWeatherDelegate.

最終的には...

...彼らは両方とも言う: あなたのために何かをするために誰かを作成します。しかし、View Helperは、ビューで不必要な作業を行わないようにと言っています。Business Delegateは、一部のコンポーネントを切り離すように指示するため、システムの責任がより適切に分散されます。どちらもシステムの保守を容易にします。

于 2013-05-05T06:51:35.500 に答える