S
Sam Kong
Hi!
Sometimes a class provides object instantiation methods other than new.
See an example.
class Color
def initialize r, g, b
@r = r
@g = g
@b = b
end
def to_s
"R: #{@r}, G: #{@g}, B: #{@b}"
end
class << self
def red
new 255, 0, 0
end
def blue
new 0, 0, 255
end
def green
new 0, 255, 0
end
end
end
puts Color.new(100, 120, 140)
puts Color.red
puts Color.blue
Is this one of design patterns, or just a simple idiom?
It's similar to a factory method pattern but it's not according to the
definition.
Is there any name for it?
TIA.
Sam
Sometimes a class provides object instantiation methods other than new.
See an example.
class Color
def initialize r, g, b
@r = r
@g = g
@b = b
end
def to_s
"R: #{@r}, G: #{@g}, B: #{@b}"
end
class << self
def red
new 255, 0, 0
end
def blue
new 0, 0, 255
end
def green
new 0, 255, 0
end
end
end
puts Color.new(100, 120, 140)
puts Color.red
puts Color.blue
Is this one of design patterns, or just a simple idiom?
It's similar to a factory method pattern but it's not according to the
definition.
Is there any name for it?
TIA.
Sam