Home >> Latest Articles >> Architectural Patterns vs Design Patterns

Architectural Patterns vs Design Patterns

Software architecture is responsible for the skeleton and the high-level infrastructure of software, whereas software design is responsible for the code level design such as, what each module is doing, the classes scope, and the functions purposes, etc.

Generally, the architecture and design both explains the idea but architecture focus on the abstract view of idea while design focus on the implementation view of idea.

Design Patterns:
Design patterns - It solves commonly occurring problem.

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

It is not a finished design that can be transformed directly into source or machine code. It is a description or template for how to solve a problem that can be used in many different situations.

These design patterns divided mainly into three Groups:

1. Creational Patterns:

In software engineering, creational design patterns are design patterns that deal with object creation mechanisms, trying to create objects in a manner suitable to the situation

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton pattern
2. Structural Patterns:

In software engineering, structural design patterns are design patterns that ease the design by identifying a simple way to realize relationships among entities.

  • Adapter
  • Bridge
  • Decorator
  • Facade
  • Proxy pattern
3. Behavioral Patterns:

In software engineering, behavioral design patterns are design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication

  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Null Object
  • Observer
Architectural Patterns:
Architectural patterns - It serves as a blueprint for a system.

An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. Architectural patterns are similar to software design patterns but have a broader scope.

The architectural patterns address various issues such as as:

  • Performance
  • High availability
  • Scalability
  • Security
  • Maintainability
  • Testing
  • Deployment
  • Technology Stack

Following are the list of most widely used Architectural Patterns:

  • MVC Pattern
  • Model View Presenter (MVP)
  • Layered pattern (N-tier Architecture)
  • Master-Slave Pattern
  • REST (Architecture Style)
  • Monolithic architecture
  • Microservice architecture
  • Event-driven architecture (EDA)
  • Service-Oriented architecture (SOA)
Full Stack Tutorials

Author | Blogger @FullStackTutorials | View all articles