This course introduces object-oriented design patterns. Patterns and pattern languages have become very popular as a way to improve the quality and reusabilty of object-oriented software. Both the advantages and the disadvantages are discussed in the description of the consequences of the pattern. The main part of the pattern is a template for objects, with a suggested communication pattern among objects. Design patterns provide programmers with elegant solutions, often known implicitly by experienced developers.
Patterns also give developers a more powerful vocabulary to discuss designs.
This course covers material from the Design Patterns book by Gamma, et al. The class includes exercises using patterns.