2021年04月08日
オブジェクト指向言語におけるインターフェースのメリット
こんばんは。DIMN(だいもん)と申します。
Javaとかのオブジェクト指向の言語で「インターフェース」ってご存知でしょうか?
// インタフェースの作成
interface ITest {
void hoge();
}
// インタフェースを実装し、足し算するクラスを作成
class Test implements ITest {
public void hoge() {
// 何かする
}
}
文法としては知ってる、という人もいると思います。
例では、hoge()メソッドを必ず実装しなければならないという感じです。
私はメリットを「実装を強制できる」くらいに思ってました。
例だと、hogeというのを必ず実装しなければならず、利用者は気にせずにhogeを使えるみたいな感じです。
もう一つの大きなメリットで「テストがしやすい」というのが出てきます。
・・・が、メリットを全く感じておりませんでした。「どうテストしやすいの?」って感じです。
最近知ったのですが、テストを自動化するときに大いに役に立つらしいです。
テスト用のモジュールに(スタブ)に差し替えるのにインターフェースは必要ということです。
class Main {
public void testmethod(ITest test) {
// 何かする
test.hoge();
// 何かする
}
}
よくあるのが、hoge()がまだ出来てないからテストができん!hoge()を今動かすと怒られる!
とかの時に、インターフェースを継承したテスト用のクラスを作り、差し替えられるそうです。
hoge()の中身は、とりあえず成功したことにする、みたいなテスト実装で良いみたいです。
テスト自動化の文化が無いと、インターフェースの大きな恩恵って受けられないのだと思いました。
テスト自動化はメリットもデメリットもあるので、みんな理解してやるやらないを決定したいですね。
・・・ということで、インターフェースの使い方の理解が深まったので記事にしました。
価格:3,080円 |
価格:3,080円 |
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/10650211
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック