Sobes.tech
Junior — Middle

Könnten Sie ein Beispiel nennen, bei dem das Prinzip der einzigen Verantwortung im Code verletzt wird?

sobes.tech KI

Antwort von AI

Das Prinzip der einzigen Verantwortlichkeit (Single Responsibility Principle, SRP) besagt, dass eine Klasse oder ein Modul nur einen Grund zur Änderung haben sollte, also für eine konkrete Aufgabe verantwortlich sein sollte.

Beispiel für eine Verletzung des SRP in Android:

public class UserProfileActivity extends AppCompatActivity {
    // Verantwortlich sowohl für die UI, das Laden der Daten als auch für das Speichern der Einstellungen

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

        // Laden der Benutzerdaten aus dem Netzwerk
        loadUserData();

        // Behandlung des Klicks auf den Speichern-Button
        findViewById(R.id.saveButton).setOnClickListener(v -> saveUserSettings());
    }

    private void loadUserData() {
        // Netzwerkoperation
    }

    private void saveUserSettings() {
        // Speichern der Einstellungen
    }
}

Hier ist UserProfileActivity gleichzeitig für die UI-Anzeige, das Laden der Daten und das Speichern der Einstellungen verantwortlich – das verstößt gegen das SRP. Es ist besser, diese Verantwortlichkeiten auf verschiedene Klassen aufzuteilen, z.B. einen ViewModel für die Geschäftslogik und eine separate Klasse für die Netzwerkarbeit.