Applied Design Patterns with Java
DESIGN PATTERNS ARE NOT BASED ON A METHODOLOGY.
DESIGN PATTERNS ARE BASED ON HEURISTICS.
These patterns are NOT the outcome of some academic theory or new technology. Rather, early adopters of O-O development techniques established groups of successful and unsuccessful practices and design decisions by trial and error, by exploration. Learning based on experience and not based on a formal system of thought and methodology is referred to as Heuristic.
heuristic
(noun):
An approach or algorithm that leads to a correct
solution of a programming task by nonrigorous or self-learning
means. One approach to programming is first to
develop a heuristic and then to improve on it. The term comes from Greek heuriskein ("to discover, find out") and is related to "Eureka"
("I have found it").
Since the publication of Design Patterns, many other researchers have contributed to the body of knowledge by identifying
additional architectural patterns. Thus, Design Patterns have emerged as a field of study in their own right.