Sfida - Completare la funzionalità del progetto per la banca
Si dispone di un programma basato su alcune funzionalità fondamentali. Manca però una funzionalità: la possibilità di trasferire denaro su un altro conto. Questa sfida consiste nell'aggiunta di questa funzionalità e di un'altra che dovrebbe aggiungere valore all'API esistente.
Implementare il metodo di trasferimento
Per creare il metodo di trasferimento, tenere presenti gli aspetti seguenti:
- È necessario implementare la funzionalità di trasferimento di denaro su un altro conto. In questo caso occorre inizializzare il programma con almeno due conti e non con uno solo, come in precedenza.
- Poiché si aggiungerà un nuovo metodo nel pacchetto principale, creare prima di tutto il test case per assicurarsi di scrivere la logica corretta per il trasferimento di denaro. Prestare particolare attenzione alla modalità di comunicazione tra funzioni e puntatori.
- Il metodo di trasferimento dovrebbe ricevere la quantità di denaro che si vuole trasferire e un oggetto account in cui si aggiungerà tale denaro. Assicurarsi di riutilizzare i metodi di versamento e prelievo per evitare ripetizioni (in particolare per la gestione degli errori).
- Tenere presente che non è possibile trasferire denaro su un altro conto se non si dispone di fondi sufficienti.
Modificare l'endpoint statement per restituire un oggetto JSON
L'endpoint /statement
restituisce attualmente una stringa che non sarà di alcuna utilità se si vuole esporla come API. Modificare l'endpoint in modo che restituisca l'oggetto account in formato JSON:
"{\"Name\":\"John\",\"Address\":\"Los Angeles, California\",\"Phone\":\"(213) 555 0147\",\"Number\":1001,\"Balance\":0}"
È opportuno presupporre che chiunque usi il pacchetto principale potrebbe voler implementare un metodo per l'estratto conto diverso per cambiare l'output. Occorre quindi apportare le modifiche appropriate per rendere estendibile il pacchetto principale. In altre parole, è necessario:
Creare un'interfaccia con una funzione
Statement() string
.Creare una nuova funzione
Statement()
nel pacchetto principale che riceva l'interfaccia creata come parametro. Questa funzione deve chiamare il metodoStatement()
già implementato nelle strutture.Dopo avere apportato queste modifiche, sarà possibile creare la struttura
Account
personalizzata e il metodoStatement()
personalizzato. Se non si ricorda come apportare queste modifiche di codifica, tornare al modulo relativo alle strutture (incorporamento) e alle interfacce.
Buona codifica!