Degree of Difficulty (1 to 10)
1 is least difficult, meaning that a bright person could
read the abstract once, glance at the sample code for the pattern and
understand what is going on immediately. It would still suit that reader to
glance at the “Common Pitfalls …” section.
10 is most difficult; the average person should expect to
read the pattern 3 or 4 times (from several writers’ perspectives) before they
really get it.
Structural Complexity (1 to 10)
This speaks to how much bulk the pattern adds to the code in
terms of the extra classes and interfaces which are added to the solution to
make the pattern work properly.
At first, the reader may confuse having “lots to learn” with
being “hard to understand” and so these two ratings are done separately. For
example, Abstract Factory is a very straightforward pattern and is easy to
understand. However, it has a lot of components and is very bulky. The two
aspects should not be confused.
Implementation Complexity (1 to 10)
1 means you can practically cut and paste the code and
search and replace the class names in your code and it is implemented.
10 means that implementation of the pattern is highly
dependent on the development of domain-specific algorithms in order to flesh
out the pattern. You may be able to cut and paste the code into your solution,
but it will require additional extra-pattern algorithms which are domain
Implementation Specificity (1 to 10)
1 means that the inner-workings of the pattern are the same
all the time. You can cut and paste generic pattern code (or use code snippets
in the case of VS2005), replace the generic class names with the
implementation-specific names and you are practically done.
10 means that the actual inner-workings of the pattern
change dramatically depending on the implementation. You will usually develop
the pattern code from scratch.