JMockitは、静的メソッド (および最終メソッド、コンストラクターなど) のモックを可能にする別のツールキットです。
OO ソリューションを設計する際に、静的メソッドを適切に使用しても問題はないと思います。
たとえば、私が好んで使用するパターン/イディオムの 1 つは静的ファサードです。特に、ビジネス アプリケーションの永続化サブシステムに、よりシンプルで使いやすい API を提供します。私の意見では、次のようなものよりもエレガントなソリューションは他にありません。
List<Person> peopleAboveAge =
find("select p from Person p where p.age >= ?", age);
メソッドは、静的メソッドのみを定義find
するクラスから静的にインポートされPersistenceFacade
、適切な Session/EntityManager インスタンスを取得する方法をカプセル化します。このソリューションは、単体テストにやさしく柔軟です。Hibernate を使用して、500 以上の永続エンティティを持つビジネス アプリケーションで使用しました。静的ファサードは、Hibernate 2 から Hibernate 3 に移行したとき、Oracle から Sybase に移行してから Oracle に戻ったとき、ORM マッピングに「hbm.xml」ファイルの代わりに JPA アノテーションを使い始めたときに役立ちました。