찾다

 >  Q&A  >  본문

laravel의 "facade" 및 "contract" 관련 문제

laravel의 "facade" 및 "contract" 문제:
두 가지 질문이 있습니다.
1. 이 두 가지의 사용 시나리오는 무엇입니까?
2. 이 두 단어가 왜 사용되는지 이해할 수 없습니다. 이 두 단어가 기능과 관련이 있는 것 같나요?

过去多啦不再A梦过去多啦不再A梦2781일 전496

모든 응답(3)나는 대답할 것이다

  • 给我你的怀抱

    给我你的怀抱2017-05-16 16:49:41

    간단히 말하면:
    Appearance(당신이 말하는 Facade)는 Appearance 모드의 구현입니다. 外观(你说的门面)是外观模式的实现。
    协议(你说的契约)是工厂方法模式抽象工厂模式프로토콜(말하는 계약)은 팩토리 메서드 패턴 또는 추상 팩토리 패턴의 구현입니다.

    디자인 패턴을 읽으면 많은 것을 얻을 수 있습니다.

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-16 16:49:41

    먼저 종속성 주입 컨테이너를 사용하는 방법을 배워야 합니다.

    Laravel의 Facade는 컨테이너에서 서비스를 호출하는 지름길입니다.

    Facade가 없으면 이와 같은 서비스/객체를 가져온 다음 다음을 호출해야 할 수도 있습니다.

    으아악

    컨테이너에 'some_service'를 등록했으므로 컨테이너가 인스턴스를 만들 수 있습니다. 'some_service',所以容器能make一个实例给你。

    Facade只是用静态方式简化了这个使用过程,底层用__callStatic

    Facade는 정적 방식으로 사용 프로세스를 단순화합니다. 하단 레이어는 __callStatic을 사용하여 함수와 매개변수를 서비스 인스턴스에 전달합니다.

    으아악

    Contract는 프레임워크와 함께 제공되는 인터페이스 모음으로, 종속성 주입을 통해 구현할 수 있습니다.

    으아악

    Facade와 Contract는 종속성 주입 컨테이너를 사용하는 다른 방법일 뿐입니다. Facade를 사용하려면 컨테이너로 이동하여 직접 가져오고(컨테이너를 서비스 로케이터로 사용) Contract를 사용하려면 컨테이너가 종속성을 주입할 때까지 기다립니다. . 🎜

    회신하다
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 16:49:41

    Facade는 간단히 말해서 class_alias 함수를 사용하여 서비스 컨테이너에 바인딩된 서비스에 별칭을 제공하는 것입니다.
    예를 들어 App은 Container 클래스에 해당합니다.

    계약은 이름에서 알 수 있듯이 양측이 인식하고 준수하는 규정이며 "인터페이스"에도 이러한 특성이 있습니다. 포스터에서는 "인터페이스 지향 프로그래밍"이 어렵습니다. 명확하게 설명해주세요. 포스터는 더 많은 연습과 경험이 필요합니다. 양해해 주세요...

    회신하다
    0
  • 취소회신하다