CSC/ECE 517 Fall 2011/ch7 7d os

From Expertiza_Wiki
Revision as of 08:44, 1 December 2011 by Orsevin (talk | contribs) (Created page with "=Anti-patterns= ==What is an Anti-pattern== An anti-pattern describes a solution which is commonly used because at first it seems beneficial, but, in fact, it is an ineffective o...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Anti-patterns

What is an Anti-pattern

An anti-pattern describes a solution which is commonly used because at first it seems beneficial, but, in fact, it is an ineffective or bad solution. The anti-pattern is usually attractive to inexperienced programmers but as the complexity or context of a problem changes, the problems with the pattern become more obvious. The term “anti-pattern” was introduced in 1995 by Andrew Koenig in his book AntiPatterns, published shortly after the Gang of Four’s [Design Patterns: Elements of Reusable Object-Oriented Software].

Benefits of Anti-patterns

The benefit of documenting anti-patterns is that they identify bad solutions and often can point out better solutions. An implemented anti-pattern does not reveal itself until the project grows more complex, so it saves time to be able to know and identify an anti-pattern early. Because many people have stumbled into the same anti-patterns, better design patterns for many anti-patterns are well-known. A useful description of an anti-pattern contains both an indication of why it is a bad solution, and a way to refactor it into a good solution. [1]

Because this class is concerned with Object Oriented programming, the focus of the next sections will be on several object oriented anti-patterns. There are dozens of known anti-patterns spanning all domains of software engineering, from management and organization practices to design issues to coding. For a more comprehensive list see [[2]].