>  기사  >  백엔드 개발  >  PHP의 의존성 주입의 세 가지 방법

PHP의 의존성 주입의 세 가지 방법

angryTom
angryTom원래의
2019-08-22 13:53:297980검색

PHP의 의존성 주입의 세 가지 방법

Inversion of Control(Inversion of Control, 약어로 IoC)은 컴퓨터 코드 간의 결합을 줄이는 데 사용할 수 있는 객체 지향 프로그래밍의 설계 원칙입니다. 가장 일반적인 방법은 DI(종속성 주입)입니다. 아래에서는 PHP에서 종속성 주입을 수행하는 세 가지 방법을 소개합니다.

추천 튜토리얼: PHP 비디오 튜토리얼

1. 생성자 주입

생성자의 매개변수를 통해 종속 객체에 종속 객체를 주입하고, 객체 초기화 시 주입합니다. .

장점:

객체 초기화가 완료되면 사용 가능한 객체를 얻을 수 있습니다.

단점:

 ●삽입해야 할 객체가 많으면 생성자 매개변수 목록이 매우 길어집니다. #🎜🎜 ##🎜 🎜# ●유연성이 부족해요. 주입 메서드가 여러 개 있고 각 메서드에서 지정된 몇 가지 종속성만 주입하면 되는 경우 오버로드된 생성자를 여러 개 제공해야 하는데 이는 문제가 됩니다

2. Setter 메소드 주입 IoC 서비스 공급자는 멤버 변수에서 제공하는 setter 함수를 호출하여 종속 객체를 종속 클래스에 주입합니다.

장점:

 유연합니다. 필수 객체를 선택적으로 주입할 수 있습니다.

단점:

종속 개체가 초기화된 후에는 아직 종속 개체가 주입되지 않았기 때문에 사용할 수 없습니다.

3. 인터페이스 주입 종속 클래스는 지정된 인터페이스를 구현한 후 해당 인터페이스를 구현해야 합니다. 의존성 주입에 사용되는 함수입니다. 이 함수의 매개변수는 주입될 객체입니다.

Advantages

인터페이스 주입에서는 매개변수만 있으면 인터페이스 이름과 함수 이름은 중요하지 않습니다. 함수는 주입될 객체입니다. 그냥 입력하세요.

단점

침입이 너무 강해서 권장하지 않습니다.

PS: 침입이란 무엇입니까?

클래스 A가 다른 사람이 제공한 함수를 사용하려는 경우, 이 함수를 사용하려면 자신의 클래스에 추가 코드를 추가해야 한다면 이는 방해가 됩니다.

위 내용은 PHP의 의존성 주입의 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.