Table of Contents
의존성 주입 (DI)는 소프트웨어 단위를 더 시험할 수 있는, 가동 가능한 만들고, 유지하게 하는 것을 돕는 디자인 본입니다. 그것은 그것을 창조하거나 그(것)들을 찾아내기 보다는 오히려 외부에서 그것의 의존도에 단위를 제공하. 이 접근은 시험 때문에 시험에 쉽게 모목 목표 또는 텁으로 대체될 수 있기 때문에 시험의 simplify.
Dependency 주입은 무엇입니까?
의존성 주입은 생성자, 세터, 인터페이스 방법을 통해 의존성을받을 수있는 기술입니다. 하드 코딩 의존성 대신 모듈은 외부 리소스를 수용하기 위해 설계되었으며, 그보다 단단히 결합 된 것을 만듭니다.
Dependency 주입을 사용하는 이점
- Improved Testability: 의존도는 모체로 대체될 수 있으며, 단위는 쉽게 테스트할 수 있습니다.
- Enhanced Flexibility: 의존성 변경은 의존성 모듈을 수정하지 않습니다.
- 더 나은 코드 조직:은 문제와 깨끗한 건축의 분리를 촉진한다.
Dependency 주입을 실행
DI를 구현하는 몇 가지 방법이 있습니다.
- 건축사인: 클래스 생성기를 통해 종속성 제공
- Setter Injection: object 생성 후 setter 메소드를 사용하여 설정됩니다.
- Interface Injection: 인터페이스 방법을 통해 의존성을 제공.
실습에서의 의존성 주입의 예
DatabaseService]는 ]DatabaseConnection]에 따라 달라집니다. DI를 사용하여 연결은 서비스에 주입됩니다.
class DatabaseConnection {
public function connect() {
// Connection logic
}
}
class DatabaseService {
private $connection;
public function __construct(DatabaseConnection $connection) {
$this->connection = $connection;
}
public function fetchData() {
$this->connection->connect();
// Fetch data logic
}
}
// Injecting dependency
$connection = new DatabaseConnection();
$service = new DatabaseService($connection);
테스트 중에 DatabaseConnection를 대체할 수 있습니다. ]DatabaseService]를 실제 데이터베이스 작업에서 분리할 수 있습니다.
관련 기사
Dependency Injection pattern을 사용하여 의존성에서 디코딩하여 소프트웨어 모듈의 테스트 가능성을 향상시킵니다. 이 연습은 더 많은 유지 보수가 필요하며 유연한 견고한 코드로, 특히 복잡한 응용 프로그램에서 리드합니다.