A study project for 23 design patterns using JAVA