Junior — Middle
Tudna példát mondani arra, mikor sérül a felelősség egyetlen elvének betartása a kódban?
sobes.tech MI
Válasz az MI-től
Az egyetlen felelősség elve (Single Responsibility Principle, SRP) kimondja, hogy egy osztálynak vagy modulnak csak egy oka lehet a változásra, vagyis egy konkrét feladatért kell felelősséget vállalnia.
Android példája az SRP megsértésének:
public class UserProfileActivity extends AppCompatActivity {
// Egyidejűleg felelős a UI-ért, az adatok betöltéséért és a beállítások mentéséért
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_profile);
// Felhasználói adatok betöltése hálózatról
loadUserData();
// A mentés gomb kattintásának kezelése
findViewById(R.id.saveButton).setOnClickListener(v -> saveUserSettings());
}
private void loadUserData() {
// Hálózati művelet
}
private void saveUserSettings() {
// Beállítások mentése
}
}
Itt a UserProfileActivity egyszerre felelős a UI megjelenítéséért, az adatok betöltéséért és a beállítások mentéséért — ez sérti az SRP-t. Ezeket a felelősségeket célszerű külön osztályokra bontani, például üzleti logikához ViewModel-t használni, és külön osztályt a hálózati műveletekhez.