software engineering
software design
code (computer programming) / code
Object-oriented
interaction
class (computer science) / class
object (computer science) / object
Architectural pattern (computer science) / Architectural patterns
algorithms
computation
History
Pattern (architecture) / architectural concept
Christopher Alexander
Kent Beck
Ward Cunningham
programming
OOPSLA
Tektronix
computer science
Pattern Languages of Programming
Portland Pattern Repository
Practice
indirection
software reuse
software componentry / components
documentation / documented
Structure
Design pattern (computer science)#Documentation / Documentation
Domain specific patterns
user interface
information visualization
//hillside.net/plop/pastconferences.html
Classification and list
Design pattern
Creational pattern
Structural pattern
Behavioral pattern
delegation (programming) / delegation
aggregation (object-oriented programming) / aggregation
consultation (object-oriented programming) / consultation
coupling (computer science) / coupling
cohesion (computer science) / cohesion
inheritance (computer science) / inheritance
interface (computer science) / interface
polymorphism in object-oriented programming / polymorphism
Architectural pattern (computer science) / architectural design pattern
Model-View-Controller
Documentation
Martin Fowler
Erich Gamma
Richard Helm
Ralph Johnson
John Vlissides
Design Patterns (book) / Design Patterns
Unified Modeling Language#UML Class Diagram / Class diagram
Interaction diagram
Criticism
Over-Engineering
agile software development
Workarounds for missing language features
dynamic programming language
C++
Java (programming language) / Java
multimethods
Common Lisp
delegation (programming) / delegation
Objective C
Self (programming language) / Self
JavaScript
Peter Norvig
Dynamic programming language / dynamic languages
Does not differ significantly from other abstractions
abstraction (computer science) / abstraction
Software architecture / architecture
Design Patterns (book) / Gang of Four book
See also
Abstraction principle (programming)
Anti-pattern
Architectural pattern (computer science) / Architectural pattern
Business pattern
Distributed design patterns
Double-chance function
GRASP (Object Oriented Design)
Interaction design pattern
List of software development philosophies
List of software engineering topics
Pattern language
Pattern theory
Pedagogical patterns
Refactoring
Software development methodology
References
Further reading
External links
Directory of websites that provide pattern catalogs
PerfectJPattern Open Source Project
Jt
Printable Design Patterns Quick Reference Cards
101 Design Patterns %26 Tips for Developers
On Patterns and Pattern Languages
Patterns for Scripted Applications
Design Patterns Reference