Ele criou uma classe Abrigo e substituiu o json passado para funções. Mas e se na classe Abrigo eu usasse um json por debaixo dos panos? Dessa forma:
public class Abrigo {
private JsonObject json = new JsonObject();
public Abrigo(String nome, String telefone, String email) {
this.json.addProperty("nome", nome);
this.json.addProperty("telefone", telefone);
this.json.addProperty("email", email);
}
//faria um metodo para retornar o json
public JsonObject getJson() {
return this.json;
}
}
Assim, ao invés de mudar os outros métodos que esperam receber um json, voce só altera a parte de criar, e quando o método precisar do json, vc chama o método get. Minha dúvida é se isso é uma abordagem válida, digamos que seja um sistema legado e muito maior, que espera sempre receber um json, é válido fazer isso? De certa forma extrai a complexidade do código e deixa a responsabilidade somente para a classe abrigo.