Prendere in prestito i libri
Fa parte della sezione Programmazione orientata agli oggetti del percorso Ruby di Coddy. Lezione 51 di 57.
Sfida
FacileAggiungi il comando BORROW. Mantieni tutti i comandi dei passaggi precedenti funzionanti esattamente come prima.
BORROW name id: controlla in quest’ordine e rispondi con il primo problema:no member bo,no book 9,Dune is not available,ada has reached the limit(i membri possono prendere in prestito al massimoLIMIT, cioè 2, libri). Altrimenti registra il prestito sia sul libro sia sul membro e rispondiada borrowed Dune.
Il codice fornito passa ogni riga di input a library.handle(line) e stampa ogni risposta restituita su una riga separata. I nomi dei membri sono parole singole composte da lettere minuscole, gli ID dei libri sono numeri interi e l’input contiene solo i comandi descritti finora. Qualsiasi altro comando restituisce unknown command.
Il tuo codice va in book.rb, member.rb e library.rb. main.rb contiene il codice di input/output fornito e non può essere modificato.
Provalo tu
require_relative 'book'
require_relative 'member'
require_relative 'library'
# Codice di input/output fornito: lascialo così com'è
input = []
while (line = gets)
input << line.chomp
end
library = Library.new
input.each do |line|
library.handle(line).each { |reply| puts reply }
end
Tutte le lezioni di Programmazione orientata agli oggetti
1Classi e oggetti
Lavorare con i fileDefinire le classiVariabili d'istanzaMetodi e selfto_s e inspectRipasso - Tessera della biblioteca4Incapsulamento
Metodi privatiMetodi protettiSetter privatiProteggere lo statoRiepilogo - Distributore automatico7Polimorfismo e Duck Typing
PolimorfismoDuck TypingMetodi astratticase e classiRiepilogo - Metodi di pagamento10Pattern di progettazione Parte 2
Delegazione con ForwardablePattern DecoratorPattern BuilderPattern State2Metodi di accesso e self
Metodi di lettura e scritturaSetter personalizzatiself nei metodiIdentità e uguaglianzaRiepilogo - Elenco contatti5Ereditarietà
SottoclassiRidefinizione dei metodiChiamare superis_a? e antenatiRiepilogo - Paghe del personale8Metodi speciali
Uguaglianza e hashMetodi degli operatoriIndicizzazione e appendCollezioni personalizzateRiepilogo - Frazioni11Progetto: Gestione della biblioteca
Libri e iscrittiPrendere in prestito i libriEsercitati da solo: Compilatore Ruby online