This week
on my CS Journey, I want to talk about the design patterns, Especially the
Facade design pattern. In class, we also learned about other designs which are
helpful. However, I wanted to focus on the Facade design pattern. To start of Facade
is a structural design pattern that adds an interface to an existing system to
hide its complexities. In other words, it provides a simple interface that can
be used to manipulate more complex logic behind the scenes, that are hidden
from the main user. According to the Gang of Four, the Facade pattern intends
to "Provide a unified interface to a set of interfaces in a
subsystem" From the blog I used it provided a diagram that I think is
helpful to understand the design pattern. In the diagram, we can see that Facade
is acting as an interface for the complex Subsystems that are hidden from the
main clients.
Now
let’s take a look at a real-life example. A good example that I found was When
a computer starts up, it involves the work of CPU, memory, hard drive, and
other subsystems. To make it easy to use for users we can add a Facade that
wraps the complexity of the task and provide one simple interface instead. This
applies to the Facade design pattern because it hides the complexities of the
system and provides an easy interface to the users.
One
of the liabilities is that a Facade might provide limited functionality in
comparison to working with the subsystem directly. Does not prevent
applications from using subsystems classes if they need to. Also, it can
increase the number of wrapper classes. Another liability is that Facade can
perform way too many tasks. One of the benefits is that it reduces compilation
dependencies is vital in large software systems. Overall, The Facade design
pattern is helpful when dealing with the complex system because It enables us
to use the complex system much more easily.
There are
a lot of examples, diagrams, and Java Codes, readings and a link to a GitHub
resource that are provided in the blog I used. I would suggest you to take a look
at the website because it goes into further detail about the facade design
pattern, including various examples using diagrams and also this reference
contains a lot of information that is broken down into easy steps which are
user friendly.
Source : https://www.baeldung.com/java-facade-pattern
Comments
Post a Comment