abhisays

Last Updated: September 27, 2014  179 views

Design Patterns in Software Development

in: Technology

Design-patterns.JPGIf you are from computer science or any other engineering background then you must be familiar of programming languages. C is first powerful language in computer programming . It was developed in 1972 by Dennis Ritchie at the Bell Labs. Since then in 36 years dozens of programming languages come into picture. One powerful concept OOPS also added which facilitated the object oriented concepts in programming languages. Now a days software coding has become quite complex. However most of the real life problems are still the same. So software gurus always prefer to reuse the code. While any software development some patterns are followed which are normally inspired by previous projects or better say a common solution to a particular real life problem. Today I am talking about importance of design patterns in programming languages.

In software development, a design pattern nothing but a general reusable solution to a commonly occurring problem in design of the software. It is a brief description or template for how to solve a particular problem that can be used in many different situations. Let us take an example, there are many banks, so if we are developing a software solution to some money transaction, then we can always use that code design for devising the same solution for other banks.

For example, Object-oriented design patterns show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved.

Advantages of Design Patterns ::

  • General solution to a large domain of real life applications.
  • Rapid development of Software.
  • Effective Software design.
  • Improves code readability.
  • Re-usability of available code-base.

Today I am just listing out the main design patterns ::

  • Abstract Factory
  • Adapter
  • Bridge
  • Builder
  • Chain of Responsibility
  • Command
  • Composite
  • Decorator
  • Facade
  • Factory Method
  • Flyweight
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • Prototype
  • Proxy
  • Singleton
  • State
  • Strategy
  • Template Method
  • Visitor

If you are new to design patterns, then getting a good command over these design patterns is not an easy task. One book which I suggest for in-depth knowledge about these 23 design patterns is Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. In this book, they have nicely described all these 23 design patterns. I will also explain these design patterns with some sample examples in coming articles.