This article is still a draft. Version: 0.1 . I'm publishing early because of reasons.
Following the idea behind the [SubSetter][sub-setter] implementation, any Discoverer Method design pattern works like this:
-
There is an Interface (a Module in the case of Ruby) for the method, named after the design pattern. For example, an implementation of Discoverer Method for the [Serializer][serializer] pattern will have a Serializer Interface. Of course, the naming convention will vary according namespace availability and the granularity with which the pattern is implemented (Serializer, for example, implies both Writer and Reader and a Serializer Interface will likely define both the
#writeTo
and#readFrom
methods, but one might want to make separate implementations for each one as not every class reads and writes). This Interface will be implemented either in the target's class or in any of its superclasses. -
**There is a [S