Imparando Ruby e Oop in generale, mi sono imbattuto in metodi di classe che, per quanto ho capito, sono come metodi di istanza, ma sono accessibili dalla classe piuttosto che da un oggetto e possono avere solo uno in esecuzione contemporaneamente.Qual è l'uso in classe/metodi statici in ruby?
Tuttavia, non capisco perché si dovrebbe utilizzare un metodo di classe rispetto a un metodo normale (al di fuori di una classe) e quale è anche il loro uso?
Ad esempio:
#Why would you use:
class Foo
def self.bar
puts "Class method"
end
end
#Versus simply:
def bar
puts "Normal method"
end
Foo.bar # => Class method
bar # => Normal method
Mentre entrambi producono lo stesso risultato? Sono abbastanza confuso su di loro quindi per favore correggi se sto fraintendendo/tutto qui.
Si dovrebbe leggere un libro OOP di base. Ciò aiuterà di più a capire questi concetti di base. –
@maximus Potresti raccomandarne uno (o quelli online gratuiti ancora meglio!)? – user2521439
Per imparare il concetto OOP di base, ti suggerisco di leggere il libro della serie o'reilly http://shop.oreilly.com/product/9780596008673.do e di imparare lo stesso con ruby. Il libro di ruby è il migliore http://www.sapphiresteel.com/ruby-programming/The-Book-Of-Ruby –