Xae*_*ess 15
ForwardingXxx类为所有JDK和Guava集合提供装饰器模式实现,包括Map.
阅读更多关于Guava维基和Effective Java第2版的内容,第16项:赞成合成而不是继承:
总而言之,继承是强大的,但它是有问题的,因为它违反了封装.仅当子类和超类之间存在真正的子类型关系时才适用.即使这样,如果子类与超类位于不同的包中,并且超类不是为继承而设计的,那么继承可能会导致脆弱.要避免这种脆弱性,请使用组合和转发而不是继承,尤其是在存在实现包装类的适当接口的情况下.包装类不仅比子类更健壮,而且功能更强大.
基本上,它允许您自定义可能不可扩展的Maps而不添加对实际Map实现的依赖性.