Discovering new strategies and patterns
This section presents strategies for discovering new
strategies and patterns.
Str#142. "Discovering New Strategies" Strategy
- Introspectively look at each small step you take in
building some part of an object model. What advice could you
give to others, so they could get that same task accomplished
(in fewer steps, in less time, with more regularity)?
- Introspectively consider each correction you make to your
model. What advice could you offer to help others avoid that
same pitfall in the future?
Str#143. "Refining Strategies" Strategy
- Describe what you did -- your strategy.
- Apply it several more times (in multiple problem domains,
if possible).
- Name it. Categorize it.
- Share it with others -- and learn from their
response.
Str#144. "Describing Strategies" Strategy
- Include the following:
-
- name (the immediate goal) and category
- the strategy itself -- using practical, "how to"
words
- examples
Str#145. "Discovering New Patterns" Strategy
- Look at each pair, triple, quadruple (etc.) grouping of
interacting objects.
- Generalize the names of each player.
- Relate it, by analogy, to other domains. See if it can be
used again and again.
Str#146. "Naming New Patterns" Strategy
- Look for a name that gives a clue about the players in
the interaction, suggesting what these interacting objects
stereotypically know and do.
- Name the pattern in honor of the players in the
pattern.
-
- Consider synonyms.
- Consider a more general name, using "is a kind
of."
- Consider metaphors (corresponding objects) within
analogous systems (a system that has an analogous
purpose).
Str#147. "Refining Patterns" Strategy
- Describe it -- your pattern.
- Apply it several times (in multiple problem domains, if
possible).
- Categorize it: transactions, aggregate, device,
interaction, combination -- or some other category.
- Share it with others -- and learn from their
response.
Str#148. "Describing Patterns" Strategy
- Include the following:
-
- name (the players, with analogy-provoking names) and
category
- the pattern itself -- an object-model template
-
- include stereotypical responsibilities for the
pattern players
-
- common, specific responsibilities
- a few more general responsibilities (to
encourage readers to think about the
responsibilities in broader terms, too)
- typical object interactions
- examples
- combinations.
Strategies for building object
models