the good side of validation in the constructor is that when something fails, you will have the exception help you understand where the invalid data came from. in this case i don't really see a problem with this code.