Free Online Encyclopedia - Easy Encyclopedia
 
Search the Encyclopedia:
  Home
  Welcome to
  Easy Encyclopedia
  Mathematical and
  Natural Sciences

  Astronomy
  Biology
  Chemistry
  Computer science
  Earth science
  Ecology
  Health science
  Mathematics
  Physics
  Statistics
  Applied Arts
  and Sciences

  Agriculture
 
Architecture
  Business
  Communication
  Education
  Engineering
  Family and
  consumer science

  Government
  Law
  Library and information
  science

  Medicine
  Politics
  Public affairs
  Software engineering
  Technology
  Transport
  Social Sciences
  and Philosophy

  Archaeology
  Economics
  Geography
  History
  History of science
  and technology

  Language
  Linguistics
  Mythology
  Philosophy
  Political science
  Psychology
  Sociology
  Culture and
  Fine Arts

  Classics
  Cooking
  Dance
  Entertainment
  Film
  Games
  Gardening
  Handicraft
  Hobbies
  Holidays
  Internet
  Literature
  Music
  Opera
  Painting
  Poetry
  Radio
  Recreation
  Religion
  Sculpture
  Sports
  Television
  Theater
  Tourism
  Visual arts and design
 

Design patterns represent the accumulated knowledge of the community of software developers of standardised solutions to recurring problems.

They allow software developers to make use of the knowledge of past designers. Many design projects are confronted with similar problems that demand similar solutions. A design pattern is an abstraction of a solution for a particular class of problems. MVC or model view controller triad is a classical example of design pattern. It was introduced 1980 in the Smalltalk system.

The book that introduced the term design pattern to software development is Design Patterns: elements of reusable object-oriented software (commonly shortened to GoF -- Gang of Four a reference to the four authors) says:

Design patterns solve specific design problems and make object-oriented designs more flexible and elegant, and ultimately reusable. They help designers reuse successful designs by basing new designs on prior experience. A designer who is familiar with such patterns can apply them immediately to design problems without having to rediscover them.

In computer programming, the incredible gap in productivity between amateurs and experts is partly a difference in experience. Experts have weathered a variety of problems repeatedly. Typically experts end up with the same pattern to solve the problems as each other's. That is a design pattern. (GoF)

Each pattern comes up with the problem that happens again and again among programmers. Then it shows a typical solution for such a problem, if not the best solution, along with the trade-off, which is a convenient assessment to make prior to applying a potentially costly solution. It is important that patterns accompany a name because it makes possible to describe problems, solutions and talk about them with other folks.

For example the classical MVC pattern is actually a combination of three patterns listed below - Observer, Composite and Strategy. It is broadly used today.

Frequent problems that occur in programming are sometimes less commonly called anti-pattern.

See also amelioration pattern

Fundamental patterns

Creational patterns Structural patterns Behavioral patterns Concurrency patterns RealTime patterns Life cycle patterns Social / other

Table of contents
1 Related Topics
2 Further reading
3 Reference and External Links

Related Topics

Further reading

  • Design Patterns, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison-Wesley, 1995, hardcover, 395 pages, ISBN 0201633612 Design Patterns CD, 1997 ISBN 0201634988
  • Pattern-oriented Software Architecture, A System of Patterns, John Wiley & Sons Ltd.
  • Pattern-oriented Software Architecture. Volume 2: Patterns for Concurrent and Networked Objects, John Wiley & Sons Ltd.

Reference and External Links

 

 

 

 

 

 






Site Partners

Station Information
Small Business Forum
Free Web Templates
Free Mortgage Quote

This content from wikipedia is licensed under the GNU Free Documentation License