Design Patterns

COMP 310  Java Resources  Eclipse Resources


Design patterns are design solutions to recurring problems in software construction. Object-oriented design patterns present themselves as collections of classes and/or interfaces connected by specific inheritance and/or composition relationships. These are accompanied by coding templates and specific semantics. Design patterns form a cohesive language that can be used to describe classic solutions to common design problems. These patterns enable us to discuss systems of objects as quasi-encapsulated entities. Design patterns are very successful at capturing the inherent abstractions of the problem. By using design patterns to solve programming problems, the proper perspective on the design process can be maintained.

Design patterns persist in software development because they embody one or more fundamental principles of computer science. In such, design patterns form a very useful "meta-language" that can be used to illustrate and reinforce many key concepts in programming. Design patterns provide ways to structure software components into systems that are flexible, extensible, and have a high degree of reusability.

These pattern discussions, except for the Union, Null and Model-View-Controller patterns are adapted from the classic text, Design Patterns by Gamma, Helm, Johnson and Vlissides (Addison Wesley Longman, 1995. ISBN 0-201-63361-2). Anyone serious about learning object oriented programming should own this book.

These modules were created a resource for the CNX course "Principles of Object-Oriented Programming"

For other content formerly published in the Connexions system, see Connexions Modules.


© 2023 by Stephen Wong