Structural Design Pattern: Facade Design Pattern

Level : Intermediate
Mentor: Shailendra Chauhan
Duration : 00:02:00

Define Facade Design Pattern

The facade pattern hides the system's complexities and provides the client with an interface through which to access the system. This pattern uses a single wrapper class with a set of members requested by the client. These members use the system on behalf of the facade client and cover the implementation specifics. Provides a higher-level interface, making the subsystem easier to use. It aggregates items to make the procedure easier.

Examples of Facade Design Patterns

Examples of Facade design patterns are:

  • User Registration Process
  • Process An Order
  • Creating User Follower Workflow

Facade Design Pattern with UML diagram

The UML class diagram above defines the following classes, interfaces, and objects:

  • Complex System: A collection of subsystems.
  • SubsystemA, SubsystemB, and SubsystemC: These are classes inside a complicated system that perform certain operations.
  • Facade: This is a wrapper class that contains the client's needed members.
  • Client: This is a class that handles high-level activities in the Facade.

When to use Facade Design Patterns?

  • The facade design pattern is beneficial when a simple interface is needed to access a complicated system.
  • A subsystem's abstractions and implementations are tightly connected.
  • Each level of stacked software requires its access point.
  • The facade design pattern is particularly useful when a system is exceedingly complex or difficult to understand because the system has a large number of interrelated classes or its source code is unavailable.

Advantages of the Facade Design Pattern

  • Simplified Interface: Provides a single, simplified interface for complicated subsystems, making them easier to utilize.
  • Reduced Complexity: Clients engage with a single unified interface rather than directly with complicated components, lowering the system's perceived complexity.
  • Isolation: Provides some separation from the complicated subsystems, which might be useful when there are frequent subsystem changes.
  • Improved Testability & Maintainability: Facade can make testing easier by reducing interdependencies and focusing on system interfaces.
Self-paced Membership
  • 22+ Video Courses
  • 800+ Hands-On Labs
  • 400+ Quick Notes
  • 55+ Skill Tests
  • 45+ Interview Q&A Courses
  • 10+ Real-world Projects
  • Career Coaching Sessions
  • Email Support
Upto 60% OFF
Know More
Still have some questions? Let's discuss.
Accept cookies & close this