Learn Design Pattern of Java