Posts

Showing posts from April, 2020

Abstract Factory design pattern analysis

Image
What is Abstract Factory design pattern?


The intent or definition of Abstract Factory is
Provide an interface for creating families of related or dependent objects without specifying their concrete classes
It is kind of an obscure definition, in order to understand it we need to break it into meaningful pieces.



1.  "Provide an interface" 
When we talk about Abstract Factory we talk about interface not abstract class, Basically this design pattern gives us an Interface, like Interface in Java, C# , Typescript (abstract class).   
Why interface?  Whenever we talk about any design pattern, it emphasizes more on how we are going to use it rather than implement it.
Interface is always the right type to prefer because concrete class creates tight coupling whereas an interface isolates it from the rest of the system. At runtime we can get different solution, without updating our code.

For example

interfaceSecurityFactory{AuthenticationManagergetAuthenticationManager();AuthorizationManage…