Java design patterns.