La clase ShowService tiene muchos responsabilidades, lo cual inflige el principio SRP. Una solución seria dividir la clase, como por ejemplo: ShowService se encargue solo de la construcción y los getters, y la clase ShowServiceValidation valide el permiso de la creación de shows.