Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengakses Pembolehubah Luaran (cth., Objek Pangkalan Data) Dalam Kelas dalam Pengaturcaraan Berorientasikan Objek?

Bagaimanakah Saya Boleh Mengakses Pembolehubah Luaran (cth., Objek Pangkalan Data) Dalam Kelas dalam Pengaturcaraan Berorientasikan Objek?

Barbara Streisand
Barbara Streisandasal
2025-01-18 00:27:08745semak imbas

How Can I Access External Variables (e.g., a Database Object) Within a Class in Object-Oriented Programming?

Mengakses Sumber Luaran dalam Pengaturcaraan Berorientasikan Objek: Amalan Terbaik

Pengaturcaraan berorientasikan objek menekankan pengkapsulan data dalam kelas. Walau bagaimanapun, senario sering timbul di mana kelas perlu berinteraksi dengan sumber luaran, seperti pangkalan data. Artikel ini menangani cabaran untuk mengakses pembolehubah luaran, seperti objek pangkalan data, dalam kelas, menggunakan kelas penomboran sebagai contoh.

Cabarannya

Mengakses secara langsung objek pangkalan data luaran dari dalam kelas boleh membawa kepada ralat seperti "Panggil ke pertanyaan fungsi ahli() pada bukan objek." Ini menyerlahkan keperluan untuk pendekatan berstruktur.

Penyelesaian Berkesan

Dua kaedah teguh wujud untuk mengurus kebergantungan luaran:

  1. Suntikan Pembina: Pendekatan pilihan ialah menyuntik objek pangkalan data ke dalam kelas melalui pembinanya. Ini memastikan objek tersedia untuk semua kaedah kelas.
<code class="language-php">class Paginator {    
    protected $db;

    public function __construct(DB_MySQL $db) {
        $this->db = $db;
    }

    public function get_records($q) {
        $x = $this->db->query($q);
        return $this->db->fetch($x);
    }

}</code>
  1. Suntikan Kaedah: Sebagai alternatif, hantar objek pangkalan data terus kepada kaedah yang memerlukannya.
<code class="language-php">class Paginator
{
    public function get_records($q, DB_MySQL $db) {
        $x = $db->query($q);
        return $db->fetch($x);
    }

}</code>

Mengapa Mengelakkan Pembolehubah Global?

Suntikan kebergantungan dengan ketara mengatasi penggunaan pembolehubah global:

  • Kosongkan Ketergantungan: Tandatangan kaedah menyenaraikan kebergantungan secara eksplisit, meningkatkan kebolehbacaan dan kebolehselenggaraan kod.
  • Gandingan Terkurang: Suntikan kebergantungan menggalakkan gandingan longgar, meningkatkan fleksibiliti dan menjadikan kod lebih mudah disesuaikan.
  • Kebolehujian Dipertingkat: Kebergantungan suntikan memudahkan ujian unit dengan membenarkan penggunaan objek olok-olok.

Dengan menggunakan teknik ini, pembangun boleh mengurus kebergantungan luaran dengan berkesan dalam program berorientasikan objek mereka, menghasilkan kod yang lebih bersih, lebih boleh diselenggara dan boleh diuji.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Pembolehubah Luaran (cth., Objek Pangkalan Data) Dalam Kelas dalam Pengaturcaraan Berorientasikan Objek?. 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