0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

依存性の注入

Last updated at Posted at 2024-09-29

背景

プログラミング用語の中でも、何回か聞いても右から左へ素通りしてしまうのが「依存性の注入」などのプログラミング独特のワード。アウトプットすることで覚えたい

目的

依存性の注入と聞いて、すぐにコードの違いを思い浮かべられるようになること

本文

一言で言うと?

依存性の注入とは「依存するクラスを、クラスの内部でインスタンス化せず、外部からインスタンス化したものを受け取るようにすること」。なんかわからないので、使い

前提

classAはclassBに依存しているとします。
(依存とは、上記で言えばclassAはclassBがないと動かない状態のこと、です。)

「依存性の注入」のコード

classAをインスタンス化する前に、classBをインスタンス化し渡している。
これにより、classAのコンストラクタ内ではインスタンス化していない。

# classA インスタンス化
$classB = new classB();
$classA = classA($classB);
# classA コンストラクタ
public function __construct(ClassB $classB){
    $this->classB = $classB;
}

「依存性の注入」されてないコード

コンストラクタ内でインスタンス化している。

# classA コンストラクタ
public function __construct(){
    $this->classB = new ClassB();
}

学び

  • インスタンス化してから渡すか、中でインスタンス化するかの、簡単な違いであることがわかった。

laravel上でどのような仕組みになっているか、確認する。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?