No need for all of these classes for one offs of distance. Implement general Lp_Space Vector distance function + a special case for the squared euclidean distance (which isn't really a distance, but is still useful.)
Euclidean distance is dist(2, valuesources...), while Manhattan is (dist(1, valuesources...). Handles some powers as special cases for improved speed.
This pretty much enables Solr to do some pretty cool stuff when it comes to vector calculations.
See the tests for how to use. Will add Wiki later.