Software Design Patterns

A Quick Overview On Software Design Patterns

This post will be an introduction to Software Design Patterns wherein we will cover the design patterns history, types of design patterns & resources to learn design patterns.

Software Design Patterns

Software Design Patterns are reusable solutions to common problems in software development. They’re blueprints (templates) designed to help solve problems and write reusable code.

Design Patterns are pre-made solutions to the common problems in software development.

Wikipedia Says:

In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design.

History

Patterns originated as an architectural concept by Christoper Alexander in early 1977.

In 1987, Kent Beck and Ward Cunningham began experimenting with the idea of applying patterns to programming.

Design Patterns gained popularity after the book “Design Patterns: Elements of Reusable Object-Oriented Software” was published in the year 1994 by the so-called “Gang-of-Four” (GoF).

Gang-of-Four

  • Erich Gamma
  • Richard Helm
  • Ralph Johnson
  • John Vlissides

 

Types of Design Patterns

Design Patterns are broadly classified into three categories.

  1. Creational
  2. Structural
  3. Behavioral

Creational

Creational patterns are ones that create objects, rather than having to instantiate objects directly. This gives the program more flexibility in deciding which objects need to be created for a given case.

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton

Structural

Structural patterns are concerned with organizing classes and objects into large structures, keeping the structure flexible and efficient.

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

Behavioral

Behavioral patterns deal with communication and responsibility between objects.

  • Chain of Responsibility
  • Command
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template Method
  • Visitor

Here is the diagrammatic representation of all the 3 types of design patterns.

Software Design Patterns
source: refactoring.guru

Resources to learn

In this section, we have listed two resources that are best for learning design patterns at this point in time.

Books

These are a few top books to refer to for Software Design Patterns.

Websites

These two websites are the best available resources for Design Patterns.

Software Design Patterns

Courses

These are a few of the courses to check out for learning design patterns.

1. The Ultimate Design Patterns

Software Design Patterns Course

👉 Check Price

2. Design Patterns Certification Training

Software Design Patterns

👉 Check Price

Hope you like this post on Introduction to Software Design Patterns. Please share it with your friends and you may read our posts on C# Programing Language.

Happy Learning!

Share with your friends:

Leave a Comment

Your email address will not be published. Required fields are marked *