Learning about application design patterns