Master Object Oriented in Java, SOLID Design principles, Design Patterns, OOPs philosophy with best practices - 2/e 2019