One more comment, while I tried to implement this option, I found out that I need to be able to pass this Pattern in every cases, and in particular in copy mode.
While I don't think it is a good idea to "copy" the pattern in each and every item (data), due to memory overhead that it could imply, the only solution I figure out right now is to put this Pattern in a static variable.

But as it must be accessed by all and every part of the code, the change should then be as the following:

   1. Create an abstract class of the interface HttpDataFactory that will host this Pattern variable, and nothing more.
   2. Change all access or definition to HttpDataFactory to the new HttpDataFactoryAbstract, in order that this variable is visible, and moreover that someone implementing a new Factory will have to start from this abstract.

Is that correct? Or do you have a better idea?