Not a developer, but why and why not?
Discussion
It's a dated pattern that doesn't hold up. Too hard to follow the code. I could have had ehash working last night but I can't tell wtf is going on in this stupid factory code.
If you are not optimizing for readability you're doing it wrong.