Junior — Middle
Vai jūs varētu sniegt piemēru, kad kodā tiek pārkāpts vienas atbildības princips?
sobes.tech AI
Atbilde no AI
Vienas atbildības princips (Single Responsibility Principle, SRP) nosaka, ka klase vai modulis ir jābūt tikai vienam iemeslam mainīties, tas ir, jābūt atbildīgam par vienu konkrētu uzdevumu.
Piemērs SRP pārkāpumam Android:
public class UserProfileActivity extends AppCompatActivity {
// Atbildīgs gan par UI, gan datu ielādi un iestatījumu saglabāšanu
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_profile);
// Lietotāja datu ielāde no tīkla
loadUserData();
// Notikuma apstrāde saglabāšanas pogai
findViewById(R.id.saveButton).setOnClickListener(v -> saveUserSettings());
}
private void loadUserData() {
// Tīkla operācija
}
private void saveUserSettings() {
// Iestatījumu saglabāšana
}
}
Šeit UserProfileActivity ir atbildīga gan par UI attēlošanu, gan datu ielādi un iestatījumu saglabāšanu — tas ir SRP pārkāpums. Labāk ir šīs atbildības sadalīt dažādās klasēs, piemēram, biznesa loģikai izmantot ViewModel un atsevišķu klasi darbam ar tīklu.