4.某打印中心既有黑白打印机,也有彩色打印机,在打印时,使用不同的打印机,打印的效果也就不同,采用面向接口的思想编写实现打印中心的功能。
时间: 2023-11-19 15:04:19 浏览: 26
首先,我们需要定义一个打印机接口(Printer),包含打印方法(print)和获取打印机类型方法(getType)。
```java
public interface Printer {
void print(String content);
String getType();
}
```
然后,我们分别实现黑白打印机(BlackWhitePrinter)和彩色打印机(ColorPrinter),它们都实现了打印机接口并重写了接口中的方法。
```java
public class BlackWhitePrinter implements Printer {
@Override
public void print(String content) {
System.out.println("黑白打印机打印:" + content);
}
@Override
public String getType() {
return "黑白打印机";
}
}
public class ColorPrinter implements Printer {
@Override
public void print(String content) {
System.out.println("彩色打印机打印:" + content);
}
@Override
public String getType() {
return "彩色打印机";
}
}
```
最后,我们实现打印中心(PrintCenter),它包含一个打印方法(print)和一个设置打印机的方法(setPrinter),在打印时调用当前设置的打印机进行打印。
```java
public class PrintCenter {
private Printer printer;
public void setPrinter(Printer printer) {
this.printer = printer;
}
public void print(String content) {
System.out.println("正在使用" + printer.getType() + "打印中心打印:");
printer.print(content);
}
}
```
这样,我们就可以通过设置不同的打印机来实现不同的打印效果了。
示例代码:
```java
public class Main {
public static void main(String[] args) {
PrintCenter printCenter = new PrintCenter();
Printer blackWhitePrinter = new BlackWhitePrinter();
printCenter.setPrinter(blackWhitePrinter);
printCenter.print("这是一份黑白打印的文件");
Printer colorPrinter = new ColorPrinter();
printCenter.setPrinter(colorPrinter);
printCenter.print("这是一份彩色打印的文件");
}
}
```
输出结果:
```
正在使用黑白打印机打印中心打印:
黑白打印机打印:这是一份黑白打印的文件
正在使用彩色打印机打印中心打印:
彩色打印机打印:这是一份彩色打印的文件
```