Sono nuovo di Ruby. Un semplice esempio, quello che mi serve:Alternative alle classi astratte in Ruby?
class Animal
abstract eat()
class Cat < Animal
eat():
implementation
class Dog < Animal
eat():
implementation
In altre parole, il metodo mangiare() dovrebbe essere richiesta per tutti i rami che si estendono animale.
In JAVA vorrei solo usare una classe astratta, ma dopo aver fatto qualche ricerca ho scoperto che molte persone non la usano in Ruby e si consigliano invece mixin/moduli.
Tuttavia, non capisco, se i moduli possono fare di più che includere solo metodi di aggiunta. Per essere precisi, i moduli possono impostare i requisiti per le classi che metodi devono implementare (se sì, un esempio sarebbe apprezzato)?
Per riassumere, cosa dovrei usare in questo caso, quando voglio essere sicuro, che tutte le classi dello stesso tipo hanno metodi particolari e li implementano a modo loro?
Qual è la frase su "NotImplementedError" e il carrello di atterraggio degli aeroplani? –