It's more a matter of OOP and business logic implementation. You should ask yourself, does it make sense for my validator to have a magento url? It's like does it make sense to me to have two arms? It's really more a logical question that about powerfullness.

In fact, in OOP each class member stores a state of your class (which will be shared between execution). So, in this case, does it make sense that a validator will share a magentoUrl between each time the class is executed?

IMHO, no. Imagine that you were no setting `$this->magentoUrl` at the beginning of the `validate` method but instead you setted it a default value in the constructor or something. 
Then, each time you execute the validate you would have have the same magentoUrl and I don't believe this is what you're trying to achieve here.