Inversion of Control
8/8/25Less than 1 minute
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"