Cache as Collaborator - Caching In Object Design | OneNoughtOne