Publication
Communications of the ACM
Paper
Using design patterns
Abstract
Design patterns are a powerful way to structure the interaction between classes in an OO programming language like Java. Learning each one takes only a few minutes, and the great simplicity and programming efficiency they bring makes them well worth the effort.