Resoconto della biblioteca
Fa parte della sezione Programmazione orientata agli oggetti del percorso Ruby di Coddy. Lezione 54 di 57.
Sfida
MedioAggiungi il comando REPORT. Mantieni ogni comando dei passaggi precedenti funzionante esattamente come prima.
REPORT: rispondibooks: 3, borrowed: 1, poi una riga per ogni membro in ordine alfabetico:ada: Dune, Emmacon i titoli nell’ordine in cui sono stati presi in prestito, oppurebo: none.
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 in minuscolo, 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 inserito in book.rb, member.rb e library.rb. main.rb contiene il codice fornito per l’input/output 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