Junior — Middle
Kas saaksite anda näite, millal üks vastutusprintsiip on koodis rikutud?
sobes.tech AI
Vastus AI-lt
Ühe vastutuse põhimõte (Single Responsibility Principle, SRP) ütleb, et klassil või modulil peaks olema ainult üks põhjus muutuda, st olema vastutav ühe konkreetse ülesande eest.
Näide SRP rikkumisest Androidis:
public class UserProfileActivity extends AppCompatActivity {
// Vastutab nii UI, andmete laadimise kui ka seadete salvestamise eest
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_profile);
// Kasutaja andmete laadimine võrgust
loadUserData();
// Vajutuse käsitlemine salvestusnupul
findViewById(R.id.saveButton).setOnClickListener(v -> saveUserSettings());
}
private void loadUserData() {
// Võrguoperatsioon
}
private void saveUserSettings() {
// Seadete salvestamine
}
}
Siin vastutab UserProfileActivity samaaegselt UI kuvamise, andmete laadimise ja seadete salvestamise eest — see on SRP rikkumine. Need vastutused on parem jagada erinevatesse klassidesse, näiteks kasutada äriloogika jaoks ViewModel ja eraldi klassi võrguga töötamiseks.