0
1

【Laravel】依存性注入(DI)とは

Posted at

依存性注入とは

依存性注入(Dependency Injection、DI)とは、ソフトウェア設計パターンの一つで、クラスがその依存オブジェクトを自分で生成するのではなく、外部から提供される方法。

実装例

public function __construct(
//コンストラクタの引数
//このクラスが動作するために必要な依存オブジェクト。
//Mainというサービスと、Factoryという工場(ファクトリー)クラスを依存として受け取る。
   Main $main_service,
   Factory $apply_validate_factory
) {
//依存オブジェクトの代入
//コンストラクタで受け取った依存オブジェクトをクラスのプロパティに代入。
//これにより、クラス内の他メソッドでこれらを使用できる。
   $this->main_service = $main_service;
   $this->apply_validate_factory = $apply_validate_factory;
}

DIのメリット

柔軟性の向上:異なる実装を容易に差し替えられる。
テストの容易さ: ユニットテストがしやすくなる。
コードの再利用性:同じクラスを異なるコンテキストで再利用することが容易になる。

具体的な使用例

class MyController extends Controller
{
    protected $main_service;
    protected $apply_validate_factory;

    public function __construct(Main $main_service, Factory $apply_validate_factory)
    {
        $this->main_service = $main_service;
        $this->apply_validate_factory = $apply_validate_factory;
    }

    public function index()
    {
        // ここで $main_service と $apply_validate_factory を利用
    }
}
0
1
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
1