Desafio - Completar a funcionalidade do projeto bancário

Concluído

Você tem um programa que está trabalhando com alguns recursos básicos. No entanto, uma característica está faltando: a capacidade de transferir dinheiro para outra conta. Esse desafio consiste em adicionar essa funcionalidade mais outro recurso que acreditamos que agregará valor à nossa API existente.

Implementar o método de transferência

Para criar o método de transferência, você deve ter estes pontos em mente:

  • Você precisa implementar a capacidade de transferir dinheiro para outra conta. Neste caso, você tem que inicializar o programa com pelo menos duas contas e não apenas uma, como fizemos anteriormente.
  • Como você vai adicionar um novo método no pacote principal, comece criando o caso de teste para garantir que você escreva a lógica adequada para transferir dinheiro. Preste muita atenção à forma como comunica entre funções e ponteiros.
  • Seu método de transferência deve receber a quantidade de dinheiro que você deseja transferir e um objeto de conta onde você adicionará os fundos. Certifique-se de que reutiliza os métodos de depósito e levantamento para evitar a repetição (especialmente para o tratamento de erros).
  • Lembre-se de que não pode transferir dinheiro para outra conta se não tiver fundos suficientes.

Modificar o ponto de extremidade da instrução para retornar um objeto JSON

Atualmente, seu /statement ponto de extremidade retorna uma cadeia de caracteres que não será útil se você quiser expô-la como uma API. Modifique o ponto de extremidade para retornar o objeto de conta em um formato JSON:

"{\"Name\":\"John\",\"Address\":\"Los Angeles, California\",\"Phone\":\"(213) 555 0147\",\"Number\":1001,\"Balance\":0}"

Gostaríamos que você assumisse que qualquer pessoa que use seu pacote principal pode querer implementar um método de instrução diferente para alterar a saída. Portanto, você precisa fazer as alterações adequadas para tornar seu pacote principal extensível. Em outras palavras, você precisa:

  1. Crie uma interface com uma Statement() string função.

  2. Crie uma nova Statement() função em seu pacote principal que receba a interface que você criou como parâmetro. Esta função deve chamar o Statement() método que suas estruturas já possuem.

    Ao fazer essas alterações, você terá permissão para criar sua estrutura personalizada Account e seu método personalizado Statement() . Para lembrar como fazer essas alterações de codificação, você pode voltar ao módulo sobre estruturas (incorporação) e interfaces.

Feliz codificação!