public class NormalCacheDecorator implements IObject {
private IObject original; private Map<String, Object> cacheData = new HashMap<>();
public NormalCacheDecorator (IObject original) {
this.original = original; }
@Override public String getData () { Object data = cacheData.get("getData"); if (data == null) { data = original.getData(); cacheData.put("getData", data);
} return (String) data; }
public static void main (String[] args) { MyObject object = new MyObject(); IObject decorator = new NormalCacheDecorator(object); System.out.println(decorator.getData()); System.out.println(decorator.getData()); } }