java development & patterns