Source: arunveersingh/designpatternsusingjava · Java.