Architecture Style Vs Architecture Pattern Vs Design Pattern

Anji…
2 min readJun 17, 2019

--

Architecture Style

The architectural style is a very specific solution to a particular software that focuses on how to organize the code efficiently created for the software.

It is the granularity of the highest level that focuses on creating the layers, high-level modules, and communication/interaction between the various modules in the software.

The architectural pattern is the description of relationship types and elements along with a set of constraints to implementing a software system. The patterns are usually reusable solutions for common problems or models.

Examples of Architectural styles

  • Layered Architecture
  • Component-based
  • Monolithic
  • Microservice
  • Event-driven
  • Publish-subscribe
  • Client-server
  • Service-oriented

Architecture Pattern

A pattern is a recurring solution to a recurring problem. In the case of Architectural Patterns, they solve the problems related to the Architectural Style.

Architectural Patterns have an extensive impact on the code base, most often impacting the whole application either horizontally (ie. how to structure the code inside a layer) or vertically (ie. how a request is processed from the outer layers into the inner layers and back). Examples of Architectural Patterns:

  • Three-tier
  • Model-View-Controller
  • Model-View-ViewModel

Design Pattern

Design patterns are usually associated with code-level commonalities. It provides various schemes for refining and building smaller subsystems. While architectural patterns are seen as commonality at a higher level than design patterns. Architectural patterns are high-level strategies that concern large-scale components, the global properties, and mechanisms of a system.

Below are the few use cases where we can think of design patterns

  • How can I avoid expensive operations for each request which is common for all (maybe a Singleton pattern?)
  • How to instantiate an object when we only know what type needs to be instantiated at run time (maybe a Factory Class?)
  • How to make an object behave differently according to its state (maybe a state machine, or a Strategy Pattern?)

Creational, Structural and Behavioural Patterns will come under design patterns. You can read more about design patterns here

Conclusion:

  • The architectural style is the application design at a high level of abstraction to 1000 feet view of Application
  • Architecture patterns talk about the high-level components and communication between the components in the application
  • Design pattern talks about the classes, objects, and relationships between the classes

Happy Coding 🙂

Before you go…

If you found this helpful please share it on Twitter, Facebook, LinkedIn, and your favorite forums. Big thanks for reading!

References:

https://stackoverflow.com/questions/3958316/whats-the-difference-between-architectural-patterns-and-architectural-styles

Originally published at http://learninghubspot.com on June 17, 2019.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Anji…
Anji…

Written by Anji…

Technology Enthusiast, Problem Solver, Doer, and a Passionate technology leader. Views expressed here are purely personal.

No responses yet

Write a response