Czytam moją książkę o rubinach. Patrząc na poniższy kod,Jakie kryteria uzasadniają użycie Modułu ponad klasą w Ruby?
module Destroy
def destroy(anyObject)
@anyObject = anyObject
puts "I will destroy the object: #{anyObject}"
end
end
class User
include Destroy
attr_accessor :name, :email
def initialize(name,email)
@name = name
@email = email
end
end
my_info = User.new("Bob","[email protected]")
puts "So your name is: #{my_info.name} and you have email #{my_info.email}"
user = User.new("john","[email protected]")
user.destroy("blah")
Mogłem właśnie stworzyć inną metodę w mojej klasie. Dlaczego miałbym to robić? Dlaczego miałbym chcieć użyć modułu? To nie jest tak, jak umieszczanie tego w innych klasach jest łatwiejsze niż zwykłe dziedziczenie.
Dziedziczenie nie jest jedynym sposobem udostępniania funkcji i często nie jest ani praktyczne, ani możliwe. –
Prawdopodobny duplikat [Różnica między klasą a modułem] (http://stackoverflow.com/questions/151505/difference-between-a-class-and-a-module) – SoAwesomeMan