Mid GoF Patterns

Exception Handling:?

  • The facade can be enhanced with better exception handling. For example, if a

component fails (e.g., DVD player is missing), the facade could display a

user-friendly message or take an appropriate action.

Visual Diagram:

+-------------------------------------+

| HomeTheaterFacade | <-- Facade

(Simplified Interface)

+-------------------------------------+

/ \

/ \

+---------------+ +---------------+

| Amplifier | | DVD Player | <-- Subsystem

Classes

+---------------+ +---------------+

| |

(turn on, play movie) (play movie, etc.)

  • The Facade class provides a simplified interface (WatchMovie() and

EndMovie()) to the user.

  • Internally, it interacts with complex components (Amplifier, DVDPlayer) to achieve the

desired result.

Conclusion:

Follow:

The Facade Pattern is highly effective for simplifying complex systems by providing a

unified interface. In the case of a home theater system, it reduces the complexity of

managing multiple components and makes the system more user-friendly. Whether it’s home

entertainment, e-commerce systems, or banking software, the Facade Pattern is a valuable

design pattern for hiding complexity and improving usability.

Factory Method Pattern: Real-Time Example - Logging Framework

Definition:

The Factory Method Pattern defines an interface for creating objects, but allows

subclasses to alter the type of objects that will be created. This provides flexibility in creating

different types of objects while adhering to the same interface.

Use Case:

A common use case for the Factory Method Pattern is in logging frameworks. Such

frameworks can log messages to various destinations, like files, databases, or consoles. The

Factory Method allows the system to choose the appropriate logging mechanism

dynamically, based on configuration or user preferences, without tightly coupling the client

code to specific classes.

Code Explanation:

More from Design Patterns in C#

All questions for this course