1
resposta

[Dúvida] Responsabilidade de uma ViewController

1 - Por que criar uma nova classe para remover um item, se a lista de itens é de responsabilidade do RefeicoesTableViewController? 2 - A classe RemoveRefeicaoViewController não fornece um método de fato para remover uma refeição, apenas um método para mostrar um alerta, podemos até usa-lá para incluir refeições caso erremos no handler, não seria melhor usar a classe Alerta no model? 3 - Uma ViewController não precisa estar associado a uma tela?

1 resposta

Olá, estudante! Vamos às suas dúvidas:

1 - A criação de uma nova classe para remover um item pode ser uma decisão de design que busca separar as responsabilidades entre as diferentes partes do código. Ao criar uma classe específica para a remoção de um item, você está seguindo o princípio da responsabilidade única, que sugere que cada classe deve ter apenas uma responsabilidade. Dessa forma, a classe RefeicoesTableViewController fica responsável apenas por gerenciar a lista de itens, enquanto a classe RemoveRefeicaoViewController fica responsável por lidar com a remoção de um item específico. Isso torna o código mais organizado e facilita a manutenção no futuro.

2 - A classe RemoveRefeicaoViewController pode não fornecer um método específico para remover uma refeição, mas isso não significa que ela não seja útil. O método para mostrar um alerta pode ser utilizado para confirmar a ação de remoção antes de executá-la, por exemplo. Quanto à utilização da classe Alerta no model, isso dependeria do contexto do seu projeto. Se a classe Alerta já estiver sendo utilizada em outros lugares e fizer sentido utilizá-la também nesse caso, pode ser uma opção válida. Caso contrário, a criação de uma nova classe para lidar com os alertas pode ser uma abordagem mais organizada.

3 - Uma ViewController não precisa necessariamente estar associada a uma tela visível para ser útil. Ela pode ser utilizada para gerenciar a lógica de uma tela que ainda será apresentada, por exemplo. Além disso, uma ViewController pode ser utilizada como parte de um fluxo de navegação entre telas, mesmo que não seja a tela inicial. Portanto, é possível ter uma ViewController sem uma tela visível associada a ela.

Espero ter ajudado a esclarecer suas dúvidas! Bons estudos!