laravel의 "facade" 및 "contract" 문제:
두 가지 질문이 있습니다.
1. 이 두 가지의 사용 시나리오는 무엇입니까?
2. 이 두 단어가 왜 사용되는지 이해할 수 없습니다. 이 두 단어가 기능과 관련이 있는 것 같나요?
给我你的怀抱2017-05-16 16:49:41
간단히 말하면: Appearance
(당신이 말하는 Facade
)는 Appearance 모드
의 구현입니다. 外观
(你说的门面
)是外观模式
的实现。协议
(你说的契约
)是工厂方法模式
或抽象工厂模式
프로토콜
(말하는 계약
)은 팩토리 메서드 패턴
또는 추상 팩토리 패턴
의 구현입니다.
디자인 패턴을 읽으면 많은 것을 얻을 수 있습니다.
高洛峰2017-05-16 16:49:41
먼저 종속성 주입 컨테이너를 사용하는 방법을 배워야 합니다.
Laravel의 Facade는 컨테이너에서 서비스를 호출하는 지름길입니다.
Facade가 없으면 이와 같은 서비스/객체를 가져온 다음 다음을 호출해야 할 수도 있습니다.
으아악컨테이너에 'some_service'
를 등록했으므로 컨테이너가 인스턴스를 만들
수 있습니다. 'some_service'
,所以容器能make
一个实例给你。
Facade只是用静态方式简化了这个使用过程,底层用__callStatic
__callStatic
을 사용하여 함수와 매개변수를 서비스 인스턴스에 전달합니다. 으아악
Contract는 프레임워크와 함께 제공되는 인터페이스 모음으로, 종속성 주입을 통해 구현할 수 있습니다.으아악
Facade와 Contract는 종속성 주입 컨테이너를 사용하는 다른 방법일 뿐입니다. Facade를 사용하려면 컨테이너로 이동하여 직접 가져오고(컨테이너를 서비스 로케이터로 사용) Contract를 사용하려면 컨테이너가 종속성을 주입할 때까지 기다립니다. . 🎜曾经蜡笔没有小新2017-05-16 16:49:41
Facade는 간단히 말해서 class_alias 함수를 사용하여 서비스 컨테이너에 바인딩된 서비스에 별칭을 제공하는 것입니다.
예를 들어 App은 Container 클래스에 해당합니다.
계약은 이름에서 알 수 있듯이 양측이 인식하고 준수하는 규정이며 "인터페이스"에도 이러한 특성이 있습니다. 포스터에서는 "인터페이스 지향 프로그래밍"이 어렵습니다. 명확하게 설명해주세요. 포스터는 더 많은 연습과 경험이 필요합니다. 양해해 주세요...