Sobes.tech
Junior — Middle

Коддо бир жоопкерчиликтин бир гана принциби бузулганда мисал келтире аласызбы?

sobes.tech AI

AIден жооп

Yagona joghorya prinsipi (Single Responsibility Principle, SRP) deyir ki, sinf və ya modul yalnız bir dəyişiklik səbəbi olmalıdır, yəni konkret bir vəzifəni yerinə yetirməlidir.

Android-də SRP pozulmasına nümunə:

public class UserProfileActivity extends AppCompatActivity {
    // UI, məlumatların yüklənməsi və tənzimləmələrin saxlanması üçün cavabdeh

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_profile);

        // İstifadəçi məlumatlarını şəbəkədən yükləmək
        loadUserData();

        // Yadda saxla düyməsinə klikləndikdə işləmə
        findViewById(R.id.saveButton).setOnClickListener(v -> saveUserSettings());
    }

    private void loadUserData() {
        // Şəbəkə əməliyyatı
    }

    private void saveUserSettings() {
        // Tənzimləmələri yadda saxla
    }
}

Burada, UserProfileActivity həm UI-nin göstərilməsi, həm məlumatların yüklənməsi, həm də tənzimləmələrin saxlanması üçün cavabdehdir — bu SRP-nin pozulmasıdır. Bu vəzifələri müxtəlif sinflərə bölmək daha yaxşıdır, məsələn, biznes məntiqi üçün ViewModel istifadə etmək və şəbəkə ilə işləmək üçün ayrıca sinif yaratmaq.