1

私はJUnitとデザインパターンの初心者ですので、ご容赦ください。

私はこの技術的なウェブページを読んでいました:

http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&sqi=2&ved=0CB4QFjAA&url=http%3A%2F%2Ftechruminations.wordpress.com%2F2011%2F05%2F30% 2Fsales-tax-problem-form-thoughtworks-for-interview%2F&ei=QBVjUIHgDYWAiQefzoHoBQ&usg=AFQjCNFIBDF10v9zEMRpAIgl9Yi7DZ172w&sig2=E-Dwtx9UaU4lBbyD0j9bww

私は実際のコーディングやクラス構成などを理解できます。私を混乱させる唯一のことは、この特定の問題に関連する以下の 2 つの質問です。

  1. Google の Guice を利用した「依存性注入」というデザイン パターンを使用していましたが、このデザイン パターンを使用しなくても同じ機能を実現できることがわかりました。この問題では、依存性注入の使用は必須ではないのだろうか?

  2. 私はJUnitを初めて使用するので、彼がカート、アイテムのテストケースを作成し、それらを個別にテストして正確性を証明したと理解しています。しかし、テスト プログラムをコンパイルして実行するために最後の「ビルドとデプロイ」セクションが必要な理由は、その xml ファイルを作成せずに Eclipse で右クリックして「JUnit テストとして実行」を選択するだけで簡単に実行できるからです。

JUnit とデザイン パターンについて教えてください。よろしくお願いします!!

4

1 に答える 1

2
  1. Guiceは依存性注入フレームワークであり、オブジェクトの長いチェーンとその依存関係を管理し、後で実装を変更するための非常に便利なツールです。この問題やその他の問題には必ずしも必要ではありませんが、特定の状況では非常に役立つ場合があります。

    • 投稿した例では、ItemIntfの実装者は1つ、CartIntfの実装者は1つ、TaxCalculatorIntfの実装者は1つだけです。これらはGuiceにバインドされているため、後でCartIntfの別の実装(たとえば、SessionBasedCart)を記述し、モジュール内の1行を変更するだけで、クラスが使用する実装を変更できます。
    • 同様に、ItemにItemCatalogなどの追加の依存関係が必要な場合は、他のファイルを変更する必要はありません。Itemは単にItemCatalogを注入することができます。
    • 最後に、依存性注入フレームワークを使用すると、クラスのテストが簡単になる場合があります。ServiceTaxCalculatorのようなクラスの場合、外部の依存関係を呼び出す場合、それらの依存関係を渡すテストを作成するのは非常に簡単です(クラスにnew演算子を使用させて後で置き換えるのではありません)。
  2. ビルドとデプロイメント」セクションは、Antと呼ばれるツールを指します。これは、XMLを使用してビルド命令とJUnitなどの依存関係を指定する方法です。Eclipseには、クラスパスを管理し、JUnitの依存関係を管理するための一連の組み込みツールがあります。つまり、それらの1つを自分で構築する必要はありません。ただし、Eclipseの外部でテストを実行する場合は、それに類似したファイルを作成する必要があります。

Apache Antの詳細を読んで、プロジェクトで何ができるかを正確に確認できます。同様に、Google Guiceの詳細と、依存性注入が一部のプロジェクトに適している理由を読むことができます。

于 2012-09-26T15:42:35.233 に答える