To quote Martin Fowler, “Self encapsulation is designing your classes so that all access to data, even from within the same class, goes through accessor methods” [Fowler, Self Encap]. Using this technique provides several advantages. It allows for the abstraction of an object’s instance (and class/static) variables. It provides a way to easily derive attributes/properties from any number of others the object holds. And not least for this specific discussion, it lends support for a simple form of validation.

