Junior — Middle
Poderia dar um exemplo de quando o princípio da responsabilidade única é violado no código?
sobes.tech IA
Resposta da IA
O Princípio da Responsabilidade Única (Single Responsibility Principle, SRP) afirma que uma classe ou módulo deve ter apenas uma razão para mudar, ou seja, ser responsável por uma tarefa específica.
Exemplo de violação do SRP no Android:
public class UserProfileActivity extends AppCompatActivity {
// Responsável tanto pela interface do usuário, quanto pelo carregamento de dados e pelo salvamento de configurações
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_profile);
// Carregar dados do usuário da rede
loadUserData();
// Lidar com o clique no botão de salvar
findViewById(R.id.saveButton).setOnClickListener(v -> saveUserSettings());
}
private void loadUserData() {
// Operação de rede
}
private void saveUserSettings() {
// Salvar configurações
}
}
Aqui, UserProfileActivity responde simultaneamente por exibir a interface, carregar dados e salvar configurações — isso viola o SRP. É mais adequado dividir essas responsabilidades em classes diferentes, por exemplo, usar um ViewModel para a lógica de negócios e uma classe separada para trabalhar com a rede.