Lots of interesting ideas here! It seems very natural to implement memoization as a part of a AOP framework, as you really get a lot of control over which methods to memoize. (Although if you are not using AOP, the approach presented in the article works just fine.) I will definitely check out Nanning.