设计模式-装饰着模式

部署运行你感兴趣的模型镜像

装饰着模式一般在不修改原功能基础上去添加新的功能

例如当美颜相机需要在原生相机的基础上添加一个美颜效果,但是不想去修改原生相机的功能
然后在美颜效果的基础上再添加一个滤镜效果,不修改美颜效果,如下图所示
在这里插入图片描述

示例代码


/**
 * 拍照功能
 */
interface IPicture{
    void takePicture();
}

/**
 * 原生相机
 */
class Phone implements IPicture{
    @Override
    public void takePicture() {
        System.out.println("照相");
    }
}

/**
 * 添加美颜效果
 */
class BeautyPhone implements IPicture{

    IPicture iPicture;

    public BeautyPhone(IPicture iPicture) {
        this.iPicture = iPicture;
    }

    @Override
    public void takePicture() {
        iPicture.takePicture();
        System.out.println("添加美颜效果");
    }
}

/**
 * 添加滤镜效果
 */
class FilterPhone implements IPicture{

    IPicture iPicture;

    public FilterPhone(IPicture iPicture) {
        this.iPicture = iPicture;
    }

    @Override
    public void takePicture() {
        iPicture.takePicture();
        System.out.println("添加滤镜效果");
    }
}

测试

public static void main(String[] args) {
        Phone phone = new Phone();

        //添加滤镜效果
        IPicture picture = new FilterPhone(phone) ;
        picture.takePicture();
    }

输出:

照相
添加滤镜效果

public static void main(String[] args) {
        Phone phone = new Phone();

        //添加美颜效果
        IPicture picture = new BeautyPhone(phone) ;
        picture.takePicture();
    }

输出:

照相
添加美颜效果

 public static void main(String[] args) {
        Phone phone = new Phone();

        //先在原相机基础上添加美颜效果 再在美颜相机基础上添加滤镜效果
        IPicture picture = new FilterPhone(new BeautyPhone(phone))   ;
        picture.takePicture();
    }

照相

输出:

添加美颜效果
添加滤镜效果

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值