Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Prinsip reka bentuk enkapsulasi dalam PHP

Prinsip reka bentuk enkapsulasi dalam PHP

WBOY
WBOYasal
2023-10-12 09:37:551157semak imbas

Prinsip reka bentuk enkapsulasi dalam PHP

Prinsip reka bentuk enkapsulasi dalam PHP memerlukan contoh kod khusus

Encapsulation ialah salah satu prinsip penting pengaturcaraan berorientasikan objek Ia digunakan terutamanya untuk menyembunyikan butiran pelaksanaan dalaman objek dan mendedahkan hanya antara muka yang diperlukan untuk luaran akses. Reka bentuk berkapsul boleh meningkatkan kebolehgunaan semula kod, kebolehselenggaraan dan keselamatan. Dalam PHP, kita boleh menggunakan kelas dan pengubah akses untuk mencapai reka bentuk terkapsul.

  1. Merangkum ahli data
    Dalam PHP, kami boleh menggunakan tiga pengubah akses: peribadi, dilindungi dan awam untuk mengawal kebenaran akses atribut. Harta persendirian hanya boleh diakses dalam kelas, harta dilindungi boleh diakses dalam kelas dan subkelas, dan harta awam boleh diakses dari mana-mana sahaja. Dengan menetapkan ahli data sebagai peribadi atau dilindungi, kami boleh mengelakkan akses luaran terus kepada sifat objek, dengan itu menyembunyikan butiran pelaksanaan dalaman objek.

Contoh Kod:

class User {
    private $name;
    protected $age;
    public $email;

    public function __construct($name, $age, $email) {
        $this->name = $name;
        $this->age = $age;
        $this->email = $email;
    }

    public function getName() {
        return $this->name;
    }

    public function getAge() {
        return $this->age;
    }

    public function getEmail() {
        return $this->email;
    }

    public function setName($name) {
        $this->name = $name;
    }

    public function setAge($age) {
        $this->age = $age;
    }

    public function setEmail($email) {
        $this->email = $email;
    }
}

$user = new User("John", 25, "john@example.com");

echo $user->getName(); // 输出:John
echo $user->getAge(); // 输出:25
echo $user->getEmail(); // 输出:john@example.com

$user->setName("Tom");
$user->setAge(30);
$user->setEmail("tom@example.com");

echo $user->getName(); // 输出:Tom
echo $user->getAge(); // 输出:30
echo $user->getEmail(); // 输出:tom@example.com

Dalam contoh di atas, kami menetapkan atribut $name kepada peribadi, atribut $age kepada protected dan atribut $email kepada awam. Dengan menyediakan kaedah getter dan setter yang sepadan untuk setiap sifat, kod luaran boleh mengakses dan mengubah suai sifat objek melalui kaedah ini tanpa mengakses sifat itu sendiri secara langsung.

  1. Kaedah enkapsulasi
    Selain merangkum ahli data, kita juga boleh merangkum tingkah laku objek, iaitu kaedah enkapsulasi. Dengan menetapkan kaedah sebagai peribadi atau dilindungi, kami boleh mengawal akses kod luaran kepada gelagat objek, dengan itu menyembunyikan butiran pelaksanaan dalaman objek.

Contoh Kod:

class Calculator {
    private function add($a, $b) {
        return $a + $b;
    }

    protected function subtract($a, $b) {
        return $a - $b;
    }

    public function multiply($a, $b) {
        return $a * $b;
    }

    public function divide($a, $b) {
        if ($b != 0) {
            return $a / $b;
        } else {
            return "除数不能为0!";
        }
    }
}

$calculator = new Calculator();

echo $calculator->multiply(2, 3); // 输出:6
echo $calculator->divide(10, 5); // 输出:2
echo $calculator->add(2, 3); // 报错:无法访问私有方法

Dalam contoh di atas, kami menetapkan kaedah tambah sebagai peribadi, kaedah tolak sebagai dilindungi dan kaedah darab dan bahagi sebagai awam. Kod luaran boleh memanggil tingkah laku objek melalui kaedah darab dan bahagi, tetapi ia tidak boleh memanggil kaedah persendirian secara langsung.

Ringkasan:
Encapsulation ialah salah satu prinsip penting pengaturcaraan berorientasikan objek Dalam PHP, reka bentuk enkapsulasi boleh dicapai melalui kelas dan pengubah suai akses. Dengan merangkum ahli data dan kaedah merangkum, kami boleh menyembunyikan butiran pelaksanaan dalaman objek dan meningkatkan kebolehgunaan semula, kebolehselenggaraan dan keselamatan kod.

Atas ialah kandungan terperinci Prinsip reka bentuk enkapsulasi dalam PHP. 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