< :the previous in number
^ :the list in numerical order
> :the next in number
P :the previous artilce (have the same parent)
N :the next (in thread)
|<:the top of this thread
>|:the next thread
^ :the parent (reply-to)
_:the child (an article replying to this)
>:the elder article having the same parent
<:the youger article having the same parent
---:split window and show thread lists
| :split window (vertically) and show thread lists
~ :close the thread frame
.:the index
..:the index of indices
Robert Klemme wrote:
> Sam Kong wrote:
>> end
>> def blue
>> 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?
>
> Since you invoke a class's method "new" like any other method of any
> other object (no special syntax) you can say with some justification
> that all classes are basically factories.
>
> IMHO your example is not optimal because it wastes resources. Since
> Color is immutable anyway constants seem a better choice:
>
> Color = Struct.new :r, :g, :b
> class Color
> def to_s
> sprintf "R: 0x%02x, G: 0x%02x, B: 0x%02x", self.r, self.g, self.b
> end
>
> RED = new 0xFF, 0x00, 0x00
> BLUE = new 0x00, 0x00, 0xFF
> GREEN = new 0x00, 0xFF, 0x00
> end
I was thinking along the same lines, but I do like the method interface
(e.g. Color.red over Color::RED). My suggestion would have been
something like:
class Color
...
class << self
def red
@red ||= new 255, 0, 0
end
...
end
end
--
-- Jim Weirich
--
Posted via http://www.ruby-forum.com/.