Desafio - Completar a funcionalidade do projeto bancário
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:
Crie uma interface com uma
Statement() string
função.Crie uma nova
Statement()
função em seu pacote principal que receba a interface que você criou como um parâmetro. Esta função deve chamar oStatement()
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 personalizadoStatement()
. 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!