Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/abdurrkhalid/design-patterns

Design Patterns play an important role in the writing of the re-usable object oriented code in the both desktop and web applications. This repository contains all information related to design patterns alongside with implementation in Java.
https://github.com/abdurrkhalid/design-patterns

developer-tools java learning-by-doing maven

Last synced: 2 days ago
JSON representation

Design Patterns play an important role in the writing of the re-usable object oriented code in the both desktop and web applications. This repository contains all information related to design patterns alongside with implementation in Java.

Awesome Lists containing this project

README

        

# Introduction of Design Patterns

Design Patterns plays a very important role in the Object Oriented Software Design. Each level of enterprise application has some kind of Design Pattern Implementation. Design Patterns Helps to Create More Reusability Friendly Code that is easy to handle.

## Purpose of this Repository

This repository contains the basic information and the code implementation of the commonly used design patterns so that the undertanding of the basic design patterns can become clear and easy to understand.

## Why Design Patterns?

1. Using a Design Pattern specific to any problem can improve the overall documentation and design of project.
2. Using a Design Pattern can help to build effective software with usability increased to many folds.

## What is Design Pattern?

Description of occurrence of a single problem again and again causing to design similar solution again gave rise to construction of design pattern.

## Components of Design Pattern

1. Name: The name of the Design Pattern includes the problem and it's solution.
2. Problem: What kind of problem the specific design pattern will solve.
3. Solution: What is the solution of specific problem.
4. Consequences: What will be the consequences in terms of space and time complexity etc.

The following Table Contains the Links to the Each Design Pattern Description Page, where different components can be found.

| Creational | Structural | Behavioral |
| ------------------------------------------------------------- | --------------------------------------------- | ----------------------------------------------------------- |
| [Abstract Factory](./Creational/Abstract%20Factory/Readme.md) | [Adapter](./Structural/Adapter/Readme.md) | [COR](./Behavioral/Chain%20of%20Responsibilities/Readme.md) |
| [Factory Method](./Creational/Factory%20Method/Readme.md) | [Bridge](./Structural//Bridge/Readme.md) | [Command](./Behavioral/Command/Readme.md) |
| [Builder](./Creational/Builder/Readme.md) | [Composite](./Structural/Composite/Readme.md) | [Iterator](./Behavioral/Iterator/Readme.md) |
| [Prototype](./Creational/Prototype/Readme.md) | [Decorator](./Structural/Decorator/Readme.md) | [Interpreter](./Behavioral/Interpreter/Readme.md) |
| [Singleton](./Creational/Singleton/Readme.md) | [Facade](./Structural/Facade/Readme.md) | [Mediator](./Behavioral//Mediator/Readme.md) |
| | [Proxy](./Structural/Proxy/Readme.md) | [Memento](./Behavioral/Memento/Readme.md) |
| | [Flyweight](./Structural/Flyweight/Readme.md) | [Observer](./Behavioral/Observer/Readme.md) |
| | | [State](./Behavioral/State/Readme.md) |
| | | [Strategy](./Behavioral/Strategy/Readme.md) |
| | | [Template Method](./Behavioral/Template%20Method/Readme.md) |
| | | [Visitor](./Behavioral/Visitor/Readme.md) |

**Relationship for Each Design Pattern**
![Relationship](./Design%20Pattern%20Relationships.png)

'\*COR here refers to the Chain of Responsibility Design Pattern.'