LoginSignup
1
0

More than 3 years have passed since last update.

golang インタフェース

Last updated at Posted at 2019-10-27

インタフェースとは

インタフェースはメソッドのシグネチャを定義した、メソッドをひとまとめにしたものである。
また、空のインタフェースなど使い方は色々あるが、今回は私が抱いていたインタフェースはなんのためにあるのかを書いてみたいと思う。

type <型名> interface {
メソッド


}

インタフェースの役割

golangにおいて継承という概念はないため、インタフェースを用いて抽象化を行います。また、golangではインタフェースでしか抽象化ができない。ここで、抽象化とは具体的な実装を振る舞いによって共通化することである。
image.png

例えば上の図のように機能Aが共通している場合、インタフェースを用いて機能Aを共通化する。こうすることで、機能Aを修正するときに抽象化した1箇所を修正すればよくなる。逆に機能Aを抽象化していない場合、機能Aが実装されている箇所を全て書き換える必要が出てきてしまう。

今回伝えたいこと

  1. golangにおけるインタフェースは抽象化を行う役割をもつ
  2. インタフェースを用いて抽象化することで依存を最小限にし、修正をする際に手間が省ける
1
0
2

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
1
0