Design patterns are programming language independent strategies for solving the common object-oriented design problems. That means, a design pattern represents an idea, not a particular implementation. By using the design patterns you can make your code more flexible, reusable and maintainable. It is the most part because java internally follows design patterns. ✦.