模拟打印机案例解析
墨盒:彩色、黑白
纸张类型:A4、B5
墨盒和纸张都不是打印机厂商提供的
打印机的打印功能需要使用兼容市场上的墨盒和纸张
测试(把纸张和墨盒定义为接口,让以后的实现类去实现它)
package com.oned8z;
/**
* @program: com.oned8z
* @description:
* @author: Mr.Lin
* @create: 2019年7月21日
**/
public interface Paper {
/*
* 纸张
*/
public String paper();
}
package com.oned8z;
/**
* @program: com.oned8z
* @description:A4纸张实现类
* @author: Mr.Lin
* @create: 2019年7月21日
**/
public class A4Paper implements Paper{
@Override
public String paper() {
return "A4";
}
}
package com.oned8z;
/**
* @program: com.oned8z
* @description:B5纸张实现类
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public class B5Paoer implements Paper{
@Override
public String paper() {
return "B5";
}
}
package com.oned8z;
/**
* @program: com.oned8z
* @description:墨盒接口
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public interface Ink {
/**
* 墨盒
*/
public String ink();
}
package com.oned8z;
/**
* @program: com.oned8z
* @description:彩色墨盒实现类
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public class ColorInk implements Ink{
@Override
public String ink() {
return "彩色";
}
}
package com.oned8z;
/**
* @program: com.oned8z
* @description:黑白墨盒实现类
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public class BlackInk implements Ink{
@Override
public String ink() {
return "黑白";
}
}
package com.oned8z;
/**
* @program: com.oned8z
* @description:打印类
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public class Printer {
private String ink;
private String paper;
public void setPaper(String paper) {
this.paper = paper;
}
public String getInk() {
return ink;
}
public String getPaper() {
return paper;
}
public void setInk(String ink) {
this.ink = ink;
}
public void dayin(){
System.out.println("用"+this.getInk()+"打印机打印"+this.getPaper()+"纸张");
}
}
package com.oned8z;
/**
* @program: com.oned8z
* @description:
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public class PrinterTest {
public static void main(String[] args) {
A4Paper a4Paper = new A4Paper();
ColorInk colorInk = new ColorInk();
Printer printer = new Printer();
printer.setInk(colorInk.ink());
printer.setPaper(a4Paper.paper());
printer.dayin();
}
}