Java:如何避免 display() 和 write(pdf) 之间的代码重复

标签 java oop processing

我在一个类中有两个函数

void display()

void write(PGraphics pdf)

我使用 display() 在屏幕上显示元素。有没有办法调用 display() 中的代码,这样我就不必在 write(pdf) 中再次写出每个函数?例如 line(0,0,100,100)pdf.line(0,0,100,100)

最佳答案

您可以通过绘制到 PGraphics 图像(而不是直接绘制到屏幕)来实现此目的,然后将该图像绘制到屏幕上。这样您就可以将其替换为 PDF PGraphics,而无需更改任何代码。像这样的事情:

PGraphics pg;
PGraphics pdf;

boolean usePdf = false;

void setup() {
  size(100, 100);
  pg = createGraphics(width, height);
  pdf = //whatever
}

void draw(){
   if(usePdf){
      display(pdf);
   }
   else{
      display(pg);
      image(pg, 0, 0);
   }
}

void display(PGraphics g) {
  g.beginDraw();
  g.background(100);
  g.stroke(255);
  g.line(20, 20, mouseX, mouseY);
  g.endDraw();
}

关于Java:如何避免 display() 和 write(pdf) 之间的代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35631891/

相关文章:

java - 使用函数从 Java 8 中总和为给定数字的数组中查找一对整数

java - pdfbox生成多页

performance - 继承等 OOP 概念是否可以优化应用程序的性能?

javascript - JavaScript 中公共(public)字段的可接受性

java - Android 处理 |保存() "File contains a path separator"

javascript - 数据可视化的性能和开发可能性

用于编码 UTF-8 netbeans 的 Java 不可映射字符 {"copy", "169"},//? - 版权标志

python hasattr() 区分方法和属性

java - 处理中的并发修改异常

java - Maven 构建期间出现 Lambda 错误