Rumah > Soal Jawab > teks badan
Masalah dengan "fasad" dan "kontrak" laravel:
Ada dua soalan:
1. Apakah senario penggunaan kedua-dua perkara ini?
2 Saya tidak faham mengapa kedua-dua perkataan ini digunakan. Saya rasa ia tidak konsisten.
给我你的怀抱2017-05-16 16:49:41
Ringkasnya: 外观
(你说的门面
)是外观模式
的实现。协议
(你说的契约
)是工厂方法模式
或抽象工厂模式
Contract
yang anda maksudkan) ialah pelaksanaan Factory Method Pattern
atau Abstract Factory Pattern
.
Baca corak reka bentuk dan anda akan mendapat banyak.
高洛峰2017-05-16 16:49:41
Anda mesti belajar menggunakan bekas suntikan kebergantungan dahulu.
Laravel’s Facade ialah jalan pintas untuk memanggil perkhidmatan daripada bekas.
Apabila tiada Facade, anda mungkin perlu mendapatkan perkhidmatan/objek seperti ini dan kemudian hubungi:
$service = App::make('some_service');
$service->doSomething();
Oleh kerana anda telah mendaftarkan 'some_service'
dalam bekas, bekas itu boleh membuat
contoh untuk anda. 'some_service'
,所以容器能make
一个实例给你。
Facade只是用静态方式简化了这个使用过程,底层用__callStatic
__callStatic
untuk menghantar fungsi dan parameter kepada contoh perkhidmatan:
class SomeService extends Facade
{
protected static function getFacadeAccessor()
{
return 'some_service'; // 这是容器里的键
}
}
SomeService::doSomething(); // 底层和第一段代码是类似的
Kontrak ialah sekumpulan antara muka yang disertakan dengan rangka kerja, yang boleh dilaksanakan melalui suntikan pergantungan.
public function index(SomeService $service) { // 等服务容器注入一个SomeService。
$service->doSomething();
}
Fasad dan Kontrak hanyalah cara yang berbeza untuk menggunakan bekas suntikan kebergantungan Untuk menggunakan Fasad, anda pergi ke bekas untuk mendapatkannya sendiri (gunakan bekas sebagai Pencari Perkhidmatan), dan untuk menggunakan Kontrak, anda menunggu bekas untuk menyuntik tanggungan. . 🎜曾经蜡笔没有小新2017-05-16 16:49:41
Fasad, secara ringkasnya, ialah memberikan alias kepada perkhidmatan yang terikat dalam bekas perkhidmatan, menggunakan fungsi class_alias
Sebagai contoh, Apl sepadan dengan kelas Container.
Sesuatu kontrak, seperti namanya, adalah peraturan yang diakui dan dipatuhi oleh kedua-dua pihak, dan "antara muka" juga mempunyai ciri-ciri ini, ia harus "pengaturcaraan berorientasikan antara muka". terangkan dengan jelas. Saya masih kurang berpengalaman , poster memerlukan lebih banyak latihan dan pengalaman, harap maafkan saya...