• 利用接口实现打印机案例


    模拟打印机案例解析

           墨盒:彩色、黑白

           纸张类型: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();
    }

    }

  • 相关阅读:
    权限管理系统(五):RBAC新解,基于资源的权限管理
    HTTP报文头Accept和Content-Type总结
    Spring Security教程(七):RememberMe功能
    Spring Security教程(六):自定义过滤器进行认证处理
    权限管理系统(三):自定义开发一套权限管理系统
    Spring Security教程(五):自定义过滤器从数据库从获取资源信息
    Spring Security教程(八):用户认证流程源码详解
    Spring Security教程(四):自定义登录页
    Spring Security教程(三):自定义表结构
    golang 做了个mutex与atomic性能测试
  • 原文地址:https://www.cnblogs.com/lpbk/p/11223562.html
Copyright © 2020-2023  润新知