Guest User

Untitled

a guest
May 24th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. require 'singleton'
  2.  
  3. class LongOperation
  4. include Singleton
  5.  
  6. def initialize
  7. puts "Calculating"
  8. @base = 2 ** 32
  9. end
  10.  
  11. def value
  12. @base
  13. end
  14. end
  15.  
  16.  
  17. class Base
  18.  
  19. def initialize
  20. @value = LongOperation.instance.value
  21. end
  22.  
  23. def value
  24. @value
  25. end
  26.  
  27. end
  28.  
  29. puts Base.new.value
  30. puts Base.new.value
  31. puts Base.new.value
  32.  
  33. ## Old Approach
  34.  
  35.  
  36. class Base
  37. include Singleton
  38.  
  39. def initialize
  40. unless @base
  41. @base = "DABASE"
  42. puts "-----------------------------"
  43. puts "This is Base's initializer"
  44. puts "-----------------------------"
  45. end
  46. end
  47. end
  48.  
  49. class Derived < Base
  50. def self.do_sth
  51. puts "do sth ..."
  52. end
  53. end
  54.  
  55. if __FILE__ == $0
  56. 3.times do
  57. Derived.do_sth
  58. end
  59. end
Add Comment
Please, Sign In to add comment