Factory Design Pattern – Implementation in Java

After discussing Singleton Pattern and Observer Pattern in my previous posts, I will be talking about Factory Design Pattern in this one. What is a Factory Pattern? Factory Pattern is also among the most commonly used design patterns. Instantiating an object with the new() operator couples the code tightly to the concrete implementation leading to … Continue reading Factory Design Pattern – Implementation in Java

Observer Pattern – Implementation in Java

What is an Observer Pattern? Observer Pattern is one of the most commonly used design patterns. It is useful when you are interested in getting notified of the state changes of an object. It defines a one-to-many relationship between the subject and the observers. Terminologies Observer or Listener or Subscriber The objects which are interested … Continue reading Observer Pattern – Implementation in Java

The Magic of Final Keyword in Java

In this post, we will discuss all things final in Java. Final Classes, Final Methods, Final Variables and finally Final Arguments. Final Classes Let us look at an example. We have a class A that is declared as final. https://gist.github.com/anjanashankar9/8adc9729a7b4d26d9bb110767b10d1fc Now let us try to create a subclass of A https://gist.github.com/anjanashankar9/5ad56b973687dab6c5bd60042ea5403a This will give a … Continue reading The Magic of Final Keyword in Java

Java Static Initialization vs. Instance Initialization – When to use which?

Static Initialization Typically static initialization block is used to initialize static variables of a class. The block is called at the time of class initialization. It is called only once. You can initialize static variables inline. If more complicated logic is required for initialization, a static initialization block can be used. The static initialization blocks … Continue reading Java Static Initialization vs. Instance Initialization – When to use which?