仕事でやり始めたのではなくて、個人レベルですが。
今やってるJava案件でnullnull言われてるので、無性に違う言語を触ってみたくなってのが主な動機です。
で、とりあえず簡単なコード書いて体で覚えよう、ということで
結城先生のJavaデザインパターンの サンプルコードをRubyで書いてみることに。
まずは一番簡単かと思われるSingletonパターンを書いてみました。
・singleton.rb
class Singleton private_class_method :new @@instance = nil def initialize puts "インスタンスを生成しました。" end def self.instance @@instance = new unless @@instance @@instance end end
・main.rb
puts "Start." obj1 = Singleton.instance obj2 = Singleton.instance if obj1 == obj2 puts "obj1とobj2は同じインスタンスです。" else condition puts "obj1とobj2は同じインスタンスではありません。" end puts "End."
ネットで簡単なリファレンスを見ながら書いたんで、色々書き方間違ってる気がしますが、まあ最初だし。
オリジナルソースではSingletonクラスのインスタンスはメンバ変数の初期化時に値を設定してますが、 Rubyでここをどうやるかわからず。
先は長そう。