Software design pattern

This is an old revision of this page, as edited by TakuyaMurata (talk | contribs) at 00:27, 4 January 2003 (rewrite definition). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Using Design patterns is to reuse the ways that past designers discovered without efforts of rediscovering it. MVC or Model view contoller triad is an good antiqueted example of design pattern.

The book that introduced the term design patter to software development, Design Patterns: elements of reusable object-oriented software or GoF says:

[Design patterns] solve specific design problems and make object-oriented desings more flexiblem 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 on productivility between amatures and expers is partly a different in experience, if not all. Experts have weathered a lot of problems again and again. 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 alog with the trade-off, which is convinient to assess that apply the solution before it costs too much to accept. It is important that patterns accompany a name because it makes possible to describe problems, solutions and talk about them with other folks.

See also anti-pattern, amelioration pattern

Creational patterns

Structural patterns

Behavioral patterns

Concurrency patterns

RealTime patterns

User interface patterns

Life cycle patterns

Social

Self-improvement patterns

Credit