Rumah >pembangunan bahagian belakang >C++ >Patutkah Saya Menyuntik Ketergantungan ke dalam Atribut?

Patutkah Saya Menyuntik Ketergantungan ke dalam Atribut?

DDD
DDDasal
2025-01-15 08:24:44572semak imbas

Should I Inject Dependencies into Attributes?

Suntikan Ketergantungan Harta: Tidak Disyorkan

Suntikan harta pada umumnya harus dielakkan kerana pengehadan CLR dan rangka kerja seperti MVC dan API Web.

Soalan

Dalam kod anda, menyuntik IPermissionService ke dalam AuthorizeAttribute melalui suntikan harta akan menjadi masalah kerana pada masa jalan permissionService akan menjadi batal.

Penyelesaian

Sila pertimbangkan perkara berikut:

Pilihan 1: Asingkan data dan tingkah laku

  • Ekstrak logik daripada atribut ke dalam perkhidmatan
  • Daftar perkhidmatan dalam bekas
  • Gunakan atribut untuk menghuraikan dan memanggil kaedah perkhidmatan

Pilihan 2: Gunakan Objek Rendah Diri

  • Alihkan semua logik dalam sifat ke dalam perkhidmatan tersuai
  • Daftar perkhidmatan dalam bekas
  • Biar kaedah AuthorizeCore hartanah menyelesaikan perkhidmatan dan panggil kaedahnya

Pilihan yang manakah untuk dipilih?

  • Pilihan 1: Untuk kesederhanaan reka bentuk, berbilang sifat atau sifat menentukan dalam pemasangan bebas daripada MVC.
  • Pilihan 2: Dalam kes lain, pendekatan yang lebih pragmatik.

Atas ialah kandungan terperinci Patutkah Saya Menyuntik Ketergantungan ke dalam Atribut?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn