Learning Design Pattern