模拟打印机案例解析
墨盒:彩色、黑白
纸张类型: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(); }}