装饰器模式的思路整理

在不改变原有对象的基础上,将新功能附加到原对象上,
例如生活中在拍照的基础上添加美颜,此功能就相当于一个装饰作用。
定义抽象接口做统一调用标准

package decorator; /** * @Auther: 苏察哈尔丶灿 * @Date: 2020/8/8 09:11 * @Slogan: 我自横刀向天笑,笑完我就去睡觉。 */ public interface IComponent { void operation(); }

【装饰器模式的思路整理】定义相机类
package decorator; /** * @Auther: 苏察哈尔丶灿 * @Date: 2020/8/8 09:12 * @Slogan: 我自横刀向天笑,笑完我就去睡觉。 */ public class Photo implements IComponent { @Override public void operation() { System.out.println("拍照"); } }

定义装饰器类
package decorator; /** * @Auther: 苏察哈尔丶灿 * @Date: 2020/8/8 09:16 * @Slogan: 我自横刀向天笑,笑完我就去睡觉。 */ public class Decorator implements IComponent{ private IComponent component; public Decorator(IComponent component) { this.component = component; }@Override public void operation() { System.out.println("美颜"); component.operation(); } }

测试用例
package decorator; /** * @Auther: 苏察哈尔丶灿 * @Date: 2020/8/7 16:55 * @Slogan: 我自横刀向天笑,笑完我就去睡觉。 */ public class Test { public static void main(String[] args) { Decorator decorator = new Decorator(new Photo()); decorator.operation(); } }

执行结果如下:

    推荐阅读