Junior — Middle
Pouvez-vous donner un exemple où le principe de responsabilité unique est violé dans le code?
sobes.tech IA
Réponse de l'IA
Le principe de responsabilité unique (Single Responsibility Principle, SRP) stipule qu’une classe ou un module doit avoir une seule raison de changer, c’est-à-dire être responsable d’une tâche spécifique.
Exemple de violation du SRP en Android :
public class UserProfileActivity extends AppCompatActivity {
// Responsable à la fois de l’UI, du chargement des données et de la sauvegarde des paramètres
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_profile);
// Chargement des données utilisateur depuis le réseau
loadUserData();
// Gestion du clic sur le bouton de sauvegarde
findViewById(R.id.saveButton).setOnClickListener(v -> saveUserSettings());
}
private void loadUserData() {
// Opération réseau
}
private void saveUserSettings() {
// Sauvegarde des paramètres
}
}
Ici, UserProfileActivity est responsable à la fois de l’affichage de l’UI, du chargement des données et de la sauvegarde des paramètres — c’est une violation du SRP. Il est plus approprié de diviser ces responsabilités en différentes classes, par exemple, utiliser un ViewModel pour la logique métier et une classe séparée pour le travail avec le réseau.