Junior — Middle
Môžete uviesť príklad, kedy je v kóde porušený princíp jednotnej zodpovednosti?
sobes.tech AI
Odpoveď od AI
Princíp zodpovednosti za jedinú zodpovednosť (Single Responsibility Principle, SRP) hovorí, že trieda alebo modul by mal mať len jeden dôvod na zmenu, teda byť zodpovedný za jeden konkrétny úkol.
Príklad porušenia SRP v Android:
public class UserProfileActivity extends AppCompatActivity {
// Zodpovedná za UI, načítanie dát a uloženie nastavení
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_profile);
// Načítanie používateľských dát zo siete
loadUserData();
// Spracovanie kliknutia na tlačidlo uložiť
findViewById(R.id.saveButton).setOnClickListener(v -> saveUserSettings());
}
private void loadUserData() {
// Sieťová operácia
}
private void saveUserSettings() {
// Uloženie nastavení
}
}
Tu UserProfileActivity je zodpovedná naraz za zobrazovanie UI, načítanie dát a uloženie nastavení — čo porušuje SRP. Je vhodnejšie tieto zodpovednosti rozdeliť do rôznych tried, napríklad použiť ViewModel pre biznis logiku a samostatnú triedu pre prácu so sieťou.