Junior — Middle
Kunt u een voorbeeld geven van wanneer het principe van enkele verantwoordelijkheid in de code wordt geschonden?
sobes.tech AI
Antwoord van AI
Het Single Responsibility Principle (SRP) stelt dat een klasse of module slechts één reden mag hebben om te veranderen, dat wil zeggen dat het verantwoordelijk moet zijn voor één specifieke taak.
Voorbeeld van schending van SRP in Android:
public class UserProfileActivity extends AppCompatActivity {
// Verantwoordelijk voor zowel UI, dataloading als het opslaan van instellingen
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_profile);
// Laden van gebruikersgegevens uit het netwerk
loadUserData();
// Afhandeling van de klik op de opslaan-knop
findViewById(R.id.saveButton).setOnClickListener(v -> saveUserSettings());
}
private void loadUserData() {
// Netwerkoperatie
}
private void saveUserSettings() {
// Instellingen opslaan
}
}
Hier is UserProfileActivity verantwoordelijk voor het tonen van de UI, het laden van gegevens en het opslaan van instellingen — dit is een schending van SRP. Het is beter om deze verantwoordelijkheden te scheiden in verschillende klassen, bijvoorbeeld door een ViewModel voor de bedrijfslogica te gebruiken en een aparte klasse voor netwerkwerkzaamheden.