プログラミングをしていると、あちらこちらで同じような処理が必要なことがよくあります。
例えば、Webページの入力フォームを送信した際、サーバー側で入力値のチェックをするとします。この場合、郵便番号のテキストボックスに入力された値に対して「半角数字チェック」という処理をするとします。この「半角数字チェック」は電話番号やFAX番号のテキストボックスに対しても使えます。
このとき、「半角数字チェック」のコーディングを3箇所ばらばらに(コピペで)記述していたら、もし変更があった場合に3箇所修正しなければならず、メンテナンス性がよくありません。
そこで、「半角数字チェック」メソッドを持ったクラスを作り、コーディングを一箇所にまとめます。入力フォームのチェックには他にも「全角チェック」や「半角英数字チェック」などなど、いろいろなチェックが必要でしょうから、それらも同じクラスのメソッドにしましょう。
このように共通の処理のメソッドを集めたクラスのことをユーティリティクラスといいます。上記の例の場合、入力チェックのユーティリティクラスということができます。
ユーティリティクラスは機能を提供するものですから、メソッドさえ使えればよいのです。関数感覚で使えればいいわけです。よって全てのメソッドはstaticです。インスタンス化せずに、「クラス名.メソッド名」でメソッドを使えます。(ちなみにプロパティも全てstaticです)
インスタンス化せずにといいましたが、正確にはインスタンス化できないように作成します。コンストラクタをprivateまたはprotectedとするのです。
代表的なユーティリティクラスにjava.lang.Mathがあります。Mathクラスは、指数関数、対数関数、平方根、および三角関数といった基本的な数値処理を実行するためのメソッドを含んでいます。
|
|