Java設計

ユーティリティクラスの良い例と悪い例を実装してみた

ごく単純なJavaクラスの実装であっても、実装方法はいくつか考えられるため、その中で「最も良い」実装方法を検討し選択する必要がある。今回は、ユーティリティクラスを題材に、良い実装例と悪い実装例を作成してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

IntelliJ IDEA上でGradleを使ってWeb画面のSpring Bootプロジェクトを作成してみたSpring Bootのプロジェクトを新規作成を「IntelliJ IDEA」のメニューから実施しようとしたところ、無料の「Commun...

サンプルプログラムの作成

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから変更したプログラムである。

今回作成したユーティリティクラスの良い例は以下の通り。

反対に、ユーティリティクラスの悪い例は以下の通りで、コメントに記載されているように、メソッドがstaticでなく、不必要なインスタンス変数やチェック処理・例外のスローが行われている。



また、ユーティリティクラスを呼び出しているコントローラクラスの内容は以下の通りで、ユーティリティクラスの悪い例を呼び出す処理はコメントアウトして記載している。



さらに、HTMLファイルの内容は以下の通り。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-utility-ng/demo

サンプルプログラムの実行結果

今回作成したサンプルプログラムの実行結果は、以下の通り。

1) Spring Bootアプリケーションを起動し、「http:// (ホスト名):(ポート番号)」とアクセスすると、以下の画面が表示されるので、「次へ」ボタンを押下する。
サンプルプログラムの実行結果_1

2) 以下の画面に遷移することが確認できる。
サンプルプログラムの実行結果_2

要点まとめ

  • ごく単純なJavaクラスの実装であっても、実装方法はいくつか考えられるため、その中で「最も良い」実装方法を検討し選択する必要がある。
  • 設計・実装する際、不必要なインスタンス変数を使用したり、不必要な例外のスローを行ったりしないよう注意する。
  • 設計・実装する際、不要な処理(不要なチェック処理等)を行わないようにする。
  • 設計・実装する際、メソッドをstaticにできる場合は、なるべくstaticメソッドにする。