Yagona mas'uliyat printsipi

Yagona mas'uliyat printsipi

Ibragimov Diyorbek

Yagona mas'uliyat printsipi (Single Responsibility Principle, SRP) – bu SOLID tamoyillaridan biri bo‘lib, har bir sinf (class) faqat bitta vazifani bajarishi kerakligini aytadi. Boshqacha aytganda, sinfning o‘zgarishi uchun faqat bitta sabab bo‘lishi kerak. Bu tamoyil kodni oson tushunish, kengaytirish va test qilish imkonini beradi.

SRP ning foydasi shundaki, kodni modular shaklda yozishga yordam beradi, ya'ni har bir qism o'zining aniq vazifasini bajaradi. Agar kodda o'zgarish kerak bo‘lsa, faqat shu aniq qism o‘zgaradi, bu esa boshqa qismlarga ta'sir qilmaydi.

Misol

Quyida yagona mas'uliyat printsipiga amal qilmagan kodni ko‘ramiz:

php
Копировать код
class User {
    public function __construct(private $name) {}
    
    public function getName() {
        return $this->name;
    }
    
    public function save() {
        // Foydalanuvchini bazaga saqlash
        echo "Foydalanuvchi saqlandi!";
    }
    
    public function sendWelcomeEmail() {
        // Xush kelibsiz xatini yuborish
        echo "Xush kelibsiz email yuborildi!";
    }
}

Bu kodda User sinfi bir nechta vazifani bajaradi: foydalanuvchi ma'lumotlarini saqlash va email yuborish. Bu SRP ga zid.

Yagona mas'uliyat printsipiga amal qilish

Endi SRP ni qo‘llash uchun sinfni bir nechta sinflarga ajratamiz:

php
Копировать код
class User {
    public function __construct(private $name) {}
    
    public function getName() {
        return $this->name;
    }
}

class UserRepository {
    public function save(User $user) {
        // Foydalanuvchini bazaga saqlash
        echo "Foydalanuvchi saqlandi!";
    }
}

class EmailService {
    public function sendWelcomeEmail(User $user) {
        // Xush kelibsiz xatini yuborish
        echo "Xush kelibsiz email yuborildi!";
    }
}

Bu misolda, har bir sinf o‘z vazifasiga ega:

  • User sinfi foydalanuvchi ma'lumotlarini saqlaydi.
  • UserRepository sinfi foydalanuvchini bazaga saqlash bilan shug‘ullanadi.
  • EmailService sinfi email jo‘natish bilan shug‘ullanadi.

Xulosa: Yagona mas'uliyat printsipi kodni boshqarish, yangilash va kengaytirishni osonlashtiradi. Kodni har doim modular shaklda tuzish kerak, shunda u boshqa qismlarga ta’sir qilmasdan o‘zgartirilishi yoki kengaytirilishi mumkin bo‘ladi.

Report Page