about need use design pattern