|
Encapsulyatsiya yoki ma’lumotni hiding qilish
|
bet | 5/9 | Sana | 22.11.2023 | Hajmi | 250,2 Kb. | | #103482 |
Bog'liq 15 Web ilova. MVC texnologiyasiEncapsulyatsiya yoki ma’lumotni hiding qilish - Enkapsulyatsiya, ba'zi bir ma'lumotni ob'ektga o'rashdir. "Enkapsulyatsiay" atamasi ko'pincha "ma'lumotni yashirish" bilan bir-birining o'rnida ishlatiladi.
- Ob'ektning ichki qismini yashirish, uning tarkibiy qismlarini ichki ma'lumotlarini yaroqsiz yoki nomuvofiq holatga qo'yishdan foydalanuvchilarni oldini olish orqali uning yaxlitligini himoya qiladi.
- Agar ob'ektning xususiyatlari maxfiy bo'lsa, inkapulyatsiyadan foydalanishingiz mumkin va ularni yangilashning yagona usuli public metodlar orqali amalga oshiriladi.
Masalan, ushbu kodda biz foydalanuvchi ob'ektlarini noto'g'ri gender parametrini belgilashdan himoya qila olamiz.
class User {
private $name;
private $gender;
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
return $this;
}
public function getGender() {
return $this->gender;
}
public function setGender($gender) {
if ('male' !== $gender and 'female' !== $gender) {
throw new Exception('Set male or female for gender');
}
$this->gender = $gender;
return $this;
}
}
$user = new User();
$user->setName('Michal');
$user->setGender('male');
Polymorphism - Ob'ektlarni boshqacha qayta ishlash qobiliyati. Polimorfizmning ajralmas qismi umumiy interfeysdir.
- Polimorfizm - bu umumiy interfeysni birgalikda foydalanish paytida turli xil funktsiyalarga ega bo'lgan dizayn namunasidir. PHPda interfeys yoki abstract sinflar yordamida interfeysni yaratish mumkin.
- Ushbu misol polimorfizmning umumiy tushunchasini va uni PHPda qanday qilib oson ishlatishni tasvirlaydi.
- Quyida keltirilgan misolda Shape nomli interfeys va uni amalga oshiradigan barcha sinflarni maydon nomi bilan abstract metodni aniqlash uchun bajaradi.
- 1-qadam: interfeys kalit so'zi yordamida interfeysni e'lon qilish mumkin.
interface Shape {
}
interface Shape {
public function area();
}
class Circle implements Shape {
private $radius;
public function __construct($radius) {
$this -> radius = $radius;
}
public function area() {
return $this -> radius * $this -> radius * pi();
}
}
|
| |