设计模式-结构型-桥接模式-Bridge

桥接模式可以减少类的创建

矩阵类

public class Matrix {
    private String fileName;

    public Matrix(String fileName) {
        this.fileName = fileName;
    }

    public String getFileName() {
        return fileName;
    }
}

图片抽象类

public abstract class Image {
    protected ImageImp imp;

    public void setImp(ImageImp imp) {
        this.imp = imp;
    }

    public abstract void parseFile(String fileName);
}

BMP类

public class BMP extends Image {
    @Override
    public void parseFile(String fileName) {
        imp.doPaint(new Matrix(fileName));
    }
}

GIF类

public class GIF extends Image {
    @Override
    public void parseFile(String fileName) {
        imp.doPaint(new Matrix(fileName));
    }
}

JPEG类

public class JPEG extends Image {
    @Override
    public void parseFile(String fileName) {
        imp.doPaint(new Matrix(fileName));
    }
}

图片实现抽象类

public abstract class ImageImp {
    public abstract void doPaint(Matrix matrix);
}

Windows实现类

public class WinImp extends ImageImp {
    @Override
    public void doPaint(Matrix matrix) {
        System.out.println("调用Windows系统的算法绘制像素矩阵:"+matrix.getFileName());
    }
}

Linux实现类

public class LinuxImp extends ImageImp {
    @Override
    public void doPaint(Matrix matrix) {
        System.out.println("调用Linux系统的算法绘制像素矩阵:"+matrix.getFileName());
    }
}

演示类

public class Demo {
    public static void main(String[] args) {
        Image image1 = new BMP();
        ImageImp imageImp1 = new WinImp();
        image1.setImp(imageImp1);
        image1.parseFile("demo.bmp");
    }
}

演示结果

相关推荐

  1. 设计模式--模式Bridge Pattern)

    2024-05-16 03:16:06       30 阅读
  2. 设计模式】6、bridge 模式

    2024-05-16 03:16:06       14 阅读
  3. 设计模式——模式Bridge

    2024-05-16 03:16:06       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-16 03:16:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-16 03:16:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-16 03:16:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-16 03:16:06       20 阅读

热门阅读

  1. 渗透相关面试+流量分析

    2024-05-16 03:16:06       8 阅读
  2. 破解OKR落地难题:撰写阶段的陷阱与策略

    2024-05-16 03:16:06       15 阅读
  3. vscode-调试js文件

    2024-05-16 03:16:06       12 阅读
  4. lua 判断字符串是否包含子字符串(点符号查找)

    2024-05-16 03:16:06       9 阅读
  5. hive动态分区

    2024-05-16 03:16:06       10 阅读
  6. 瑞芯微RK3588驱动设计之DVP并口摄像头2

    2024-05-16 03:16:06       8 阅读
  7. 自媒体探索

    2024-05-16 03:16:06       8 阅读
  8. Helm安装集群整理

    2024-05-16 03:16:06       9 阅读
  9. golang encoding/json 使用基础

    2024-05-16 03:16:06       9 阅读