pattern design:strategy