代理模式
用于在创建对象期间决定类的类型,这样对被代理类进行增强,一般就只是增强某一方面的能力,比如权限,缓存等。增强的功能比较单一,借助某一个类就可完成。
形象的比喻:我有一件事要做,但我不能做,我需要一个能干的人做。
装饰器模式
用于运行期决定类的创建和调用方式,通过组合多个类来增强一些功能,其中,每个装饰类增强一部分,组合起来增强,构成完整地功能。需要借助多个类来完成。
形象的比喻:我有一件事要做,但我不能做,我需要一个团队来做,每个团队成员实现一个特性的功能,可以随意组合起来就是一个完美的功能。一般通过代码方面判断来实现创建装饰器类。
继承
仅仅是覆盖某个类的方法,完成一个类的功能的修改或完善。是增强功能的一种,