https://sharelearn.net/learn/courses/udemy-design-patterns-java/
Design Patterns in Java