Context: You are introduced to patterns and have made good
use of them in an instrumental way. You've had your "Aha!" reaction
('Hey, I can use Bridge here and the problem goes away!'), and you've
probably even found yourself sticking in patterns you might not have
needed just because they were cool.
Now, you're trying to make your own
patterns, hoping to discover one to solve a particular problem, or maybe trying
to figure out just what a pattern is below the surface, and why it is important.
Problem: Reading patterns and writing them are worlds different.
Writing a good pattern is difficult, there are many, many different
methods for writing them, and there's some debate about what makes a good one.
How does the novice pattern writer get going?
Forces: You like patterns and use them as tools. You have a wide
variety of examples available to you of varying quality. You don't
know quite where to start, or what to do, but everyone's gotta start somewhere.
You have a sense there's a better way to solve something, but you can't
find a pattern and wonder if there's one out there waiting to be found.
Solution: Imagine what the pattern you want to write might look like,
and write that speculative pattern. If you distribute it publicly, make sure
you label it as speculative, lest the patterns community jump all over it (with
good reason) for violating the
RuleOfThree. Writing it "as if it were true"
forces you to think about what makes a pattern. Finding something to say that fits the model forces you to think and examine your models. If you come up with something that feels truly
pattern like, go ahead and start using it (a
PrivatePattern ?); if you can use it three times, you've found a pattern, just backwards.
This is related to
FuturePerfectThinking, though I like to think of it as a
JumpIntoTheAbyss.
--
BrianSchuth
So, Brian ... is this a speculative pattern?
Shucks, I'll ruin all the dramatic tension in the pattern if I tell! --
BrianSchuth