Get to know design patterns in java with examples