LoginSignup
0
0

【コツコツ学習】UtilityクラスとStaticメソッドについて

Posted at

Utilityクラスとは?

Utilityクラスは、共通の処理をstatic領域にまとめて、簡単に処理を呼び出すためのクラス

特徴としては以下の内容です

  • staticメソッドとstatic変数
  • インスタンス化できない
  • 状態を持たない

Staticのメリットは何か?

インスタンスを生成せずに呼び出せること

インスタンス生成にかかるオーバーヘッドがなくなるので、インスタンス生成に時間がかかるクラスに有効です
そのため、頻繁に呼び出されるユーティリティメソッドはよくstaticメソッドとして実装されます

状態に依存しないことを保証できること

与えられた引数のみでメソッドの挙動が決まります(振る舞いが変わらない)
つまり副作用が発生しません

Staticを利用するか否かの判断軸

インスタンス毎に持つ意味があるかどうか

インスタンスごとに持つ意味がなければstaticメソッド、あればインスタンスメソッドにすべき

オーバーライドされる予定がない

オーバーライドを前提としたメソッドは、インスタンスメソッドとして定義する必要がある(staticはできない)

状態に依存しないかどうか

属性の参照・変更がなく、引数と戻り値のみで完結する場合のみ使うべき(振る舞いが変わらない場合)
インスタンスの値を変更しなものかですね

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0