Komposisi lwn Warisan

Linda Hamilton
Lepaskan: 2024-09-20 22:15:10
asal
901 orang telah melayarinya

Composition vs. Inheritance

Warisan lwn. Komposisi dalam PHP ?

Apabila kita memprogram berorientasikan objek, adalah penting untuk memahami perbezaan antara Warisan dan Komposisi:

Warisan
Satu kelas mewarisi daripada kelas yang lain, menggunakan semula dan melanjutkan tingkah lakunya.

class Motor
{
    public function ligar()
    {
        return "Motor Ligado!";
    }
}

class Carro extends Motor{}

$carro = new Carro();
$carro->ligar();
Salin selepas log masuk

Komposisi
Kelas mengandungi contoh kelas lain untuk mewakilkan tanggungjawab. Komposisi sering diutamakan untuk mencipta sistem yang lebih fleksibel dan mengelakkan masalah dengan pewarisan mendalam.

Contoh Praktikal
Pernahkah anda berhenti untuk berfikir bahawa apabila kita menghidupkan kereta, kita sebenarnya menghidupkan enjin? Berikutan alasan ini, kita boleh mencipta dua objek: satu dipanggil Enjin dan satu lagi dipanggil Kereta. Dengan cara ini, objek Kereta akan mengandungi contoh objek Enjin, yang akan bertanggungjawab untuk menghidupkan kereta.

Kod

class Motor
{
    public function ligar()
    {
        return "Motor Ligado!";
    }
}

class Carro
{
    private Motor $motor;

    public function __construct(Motor $motor)
    {
        $this->motor = $motor;
    }

    public function ligar()
    {
        return $this->motor->ligar();
    }
}

Salin selepas log masuk

Pemahaman
Daripada kelas Kereta yang mempunyai logik untuk menghidupkan enjin yang dibina secara langsung, ia mewakilkan tanggungjawab ini kepada objek Enjin. Ini memastikan kelas Kereta fokus pada perkara yang sepatutnya dilakukan, menjadikan kod lebih modular dan lebih mudah diselenggara. Pada masa hadapan, anda boleh menukar atau menambah baik enjin tanpa mengubah suai kod kelas Kereta.

Ujian

$motorV4 = new Motor();
$carro = new Carro($motorV4);
echo $carro->ligar(); // Saída: Motor Ligado!
Salin selepas log masuk

Kelebihan
Pendekatan ini lebih fleksibel kerana ia membolehkan kereta mempunyai jenis enjin yang berbeza (contohnya, enjin V4, V6 atau elektrik) tanpa perlu menukar kelas Kereta. Modulariti ini memudahkan penyelenggaraan dan pengembangan sistem.

Atas ialah kandungan terperinci Komposisi lwn Warisan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!