Inversion of Control
8/8/25Less than 1 minute
Inversion of Control (IoC)
Description
Là 1 nguyên lí thiết kết phần mềm.
Kiến trúc phần mềm với thiết kế này sẽ đảo ngược quyền điều khiển so với lập trình hướng thủ tục truyền thống.
Example
Lập trình truyền thống:
class Foo { public function bar() { $bar = new Bar(); } }
- Class Foo chủ động khởi tạo class Bar
- Class Foo đang phụ thuộc vào Bar
Ioc:
class Foo { protected $bar; public function __contructor(Bar $bar) { $this->bar = $bar; } }
- Class Foo không chủ động khởi tạo Bar
- Class Foo nhận được class Bar thông qua constructor, setter,..
Hollywood Principle "Đừng gọi cho chúng tôi, chúng tôi sẽ gọi cho bạn"