laravel の「ファサード」と「コントラクト」の問題:
質問は 2 つあります:
1. これら 2 つの使用シナリオは何ですか?
2. この 2 つの言葉がなぜ使われているのか理解できません。これら 2 つの言葉はそれぞれの機能に関係があるのでしょうか。
给我你的怀抱2017-05-16 16:49:41
簡単に言えば: Appearance
(あなたが話している Facade
) は Appearance モード
の実装です。 外观
(你说的门面
)是外观模式
的实现。协议
(你说的契约
)是工厂方法模式
或抽象工厂模式
プロトコル
(あなたが話している コントラクト
) は、ファクトリ メソッド パターン
または 抽象ファクトリ パターン
の実装です。
デザインパターンを読むと、多くのことが得られます。
高洛峰2017-05-16 16:49:41
まず依存関係注入コンテナーの使用方法を学習する必要があります。
Laravel の Facade は、コンテナからサービスを呼び出すためのショートカットです。
ファサードがない場合は、次のようなサービス/オブジェクトを取得してから呼び出す必要がある場合があります:
リーリーコンテナにインスタンスを'some_service'
,所以容器能make
登録したためです。
Facade は、この使用プロセスを静的な方法で単純化するだけで、最下層は __callStatic
を使用して関数とパラメーターをサービス インスタンスに渡します。
リーリー
リーリー
Facade と Contract は、依存関係注入コンテナーを使用する別の方法です。Facade を使用するには、コンテナーに移動して自分でコンテナーを取得し (コンテナーをサービス ロケーターとして使用します)、Contract を使用するには、コンテナーが依存関係を注入するのを待ちます。 。曾经蜡笔没有小新2017-05-16 16:49:41
Facadeとは、簡単に言うと、class_alias関数を使ってサービスコンテナにバインドされたサービスにエイリアスを与えることです
例えばAppはContainerクラスに相当します。
契約とは、その名のとおり、双方が認識し遵守するルールであり、「インターフェース」にもそのような特徴があり、「インターフェース指向のプログラミング」であるべきだと投稿者は問いました。わかりやすく説明してください。私はまだ経験が浅いので、投稿者にはもっと練習と経験が必要です。ご容赦ください。