What makes a pattern good?
While not emphasized or even addressed in some software patterns, Alexander’s usage includes the idea that a pattern should represent a kind of equilibrium of forces. (Even Alexander has been criticized (even by himself) for not always carrying this out in a convincing manner.) This is the same notion as optimality as seen for example in the analysis of algorithms in computer science, but applied to micro-architectures and related design forms rather than algorithms, and typically based on harder-to-measure forces and criteria (mostly ‘ilities’: extensibility, reusability, performance, reliability, complexity, etc). And sometimes a pattern is considered good because it is the only solution we even know, or because it has withstood a barrage of critiques. Another set of considerations concern stylistic issues — whether a pattern is written in an understandable way. Try analyzing some real patterns so we can develop better evaluation guidelines. • What’s the difference between a pattern