make java design patter