検索

ホームページ  >  に質問  >  本文

laravelの「ファサード」と「コントラクト」の問題

laravel の「ファサード」と「コントラクト」の問題:
質問は 2 つあります:
1. これら 2 つの使用シナリオは何ですか?
2. この 2 つの言葉がなぜ使われているのか理解できません。これら 2 つの言葉はそれぞれの機能に関係があるのでしょうか。

过去多啦不再A梦过去多啦不再A梦2781日前497

全員に返信(3)返信します

  • 给我你的怀抱

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

    簡単に言えば:
    Appearance (あなたが話している Facade) は Appearance モード の実装です。 外观(你说的门面)是外观模式的实现。
    协议(你说的契约)是工厂方法模式抽象工厂模式プロトコル (あなたが話している コントラクト) は、ファクトリ メソッド パターン または 抽象ファクトリ パターン の実装です。

    デザインパターンを読むと、多くのことが得られます。

    返事
    0
  • 高洛峰

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

    まず依存関係注入コンテナーの使用方法を学習する必要があります。

    Laravel の Facade は、コンテナからサービスを呼び出すためのショートカットです。

    ファサードがない場合は、次のようなサービス/オブジェクトを取得してから呼び出す必要がある場合があります:

    リーリー

    コンテナにインスタンスを'some_service',所以容器能make登録したためです。

    Facade は、この使用プロセスを静的な方法で単純化するだけで、最下層は __callStatic を使用して関数とパラメーターをサービス インスタンスに渡します。 リーリー

    Contract は、フレームワークに付属する一連のインターフェイスであり、依存関係の注入を通じて実装できます。

    リーリー

    Facade と Contract は、依存関係注入コンテナーを使用する別の方法です。Facade を使用するには、コンテナーに移動して自分でコンテナーを取得し (コンテナーをサービス ロケーターとして使用します)、Contract を使用するには、コンテナーが依存関係を注入するのを待ちます。 。

    返事
    0
  • 曾经蜡笔没有小新

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

    Facadeとは、簡単に言うと、class_alias関数を使ってサービスコンテナにバインドされたサービスにエイリアスを与えることです
    例えばAppはContainerクラスに相当します。

    契約とは、その名のとおり、双方が認識し遵守するルールであり、「インターフェース」にもそのような特徴があり、「インターフェース指向のプログラミング」であるべきだと投稿者は問いました。わかりやすく説明してください。私はまだ経験が浅いので、投稿者にはもっと練習と経験が必要です。ご容赦ください。

    返事
    0
  • キャンセル返事