It's All about Java DesignPattern