Cache as Collaborator - Caching in Object Design | OneNoughtOne