Escaping the equality conundrum
Equality is a mathematical concept, not an object concept. It's contextual. So, what is the correct implementation of equals? Sometimes it's no implementation at all.
On the Beautiful Code blog, Michael Feathers shows how clear thinking can eradicate confusion when object oriented comparison routines so often seem to break the logic of equality.