Learning about Design Pattens with examples