In the stages of software development, there are many methods used to rectify errors in the programming. Patterns and Anti-Patterns quite do the exact job. In the cycle of software development, there are series of common occurring errors and problems. To make a software reliable, robust, reusable and extensible, one uses patterns in order to solve common occurring problems.
While designing your software, you will at some stage feel the problem of continuously occurring errors of the same type again and again. If you go on solving them personally, not only you will waste time but you will lose your concentration. In order to solve this, we use Pattern to remove common occurring errors in software design. Pattern can be reusable for a given problem as the problem can occur many times.
Design Patterns provide general solutions that may not fit with specific problems. Design Patterns offer tested and proven development paradigms that speed up the process of development of software.
Types of Patterns:
- Algorithms Strategy Patterns: Solve high level algorithmic problems by exploiting characteristics on a computing platform.
- Structural Design Pattern: This solves problems related to global structures of applications being developed.
- Computational Design Patterns: Solve problems related to computation.
- Implementation Strategy Pattern: Solve problems related to implementation source code that supports program organization.
Design Pattern has three classification known as Structural Patterns, Behavioral Patterns and Creational Patterns.
Anti-Pattern in Software Development:
Anti-Pattern is a counter word used to describe Patterns. In this, pattern that is frequently used but is ineffective to a problem and has gone wrong is called anti-pattern. Anti-Pattern is used mostly as viable solution to a problem but due to some reasons in gets wrong. If you apply anti pattern, not only the answer to your problem will be ineffective but it will leave you into a more complex and worse situation than you were before.
It is better to first recognize the pattern before you implement it for a solution while developing your software as it may lead you to nowhere.
Applications of Anti-Pattern:
Anti-Pattern is used in many circumstances and fields depending upon the need. It is used in social and business operations on different levels like Organizational, Project Management. In Software Engineering, it is used in Software Design, Object Oriented Programming, Programming, Configuration Management, and Methodological.
Anti-Patterns look to be genuine in the starting but may soon be ineffective and can lead you into complex situations and it typically has more of consequences than advanatges.