Git submodules

Git submodules are a powerful way to use git as an external dependency management tool. It is basically a way to embed a repository into another. When you add a submodule in Git, the code of the submodule does not get added to the main repository, only certain information about the submodule does. It simply … Continue reading Git submodules

Decorator Design Pattern – Implementation in Java

I have discussed Singleton Pattern, Observer Pattern and Factory Pattern in my previous posts. In this one I will be talking about Decorator Design Pattern. What is a Decorator Pattern? The dictionary definition of the verb decorate is make (something) look more attractive by adding extra items to it. Keeping in line with this definition, … Continue reading Decorator Design Pattern – Implementation in Java

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