《黑马程序员》 笔记本USB接口应用分析与设计
来源:互联网 发布:软件项目管理期末试卷 编辑:程序博客网 时间:2024/06/07 01:19
package cn.itcast.day06.mode;public class NoteBookPcDemo {/** * 接口的汇总练习: 以笔记本电脑的USB接口为例: * 来进行分析与设置这个接口的类和在主板这个类上使用这 个接口的所有的产品 * * 比如说有一个主板厂商。它在设计东西时, 以USB的鼠标和键盘来说,如果直接把 * 鼠标和键盘焊死在了 主板上,那么这个主板和鼠标及键盘就是一次性 * 的了。鼠标换了和键盘中的 任意一个坏了。都得更换主板甚至是整台电脑。 于是就 * 有了接口的概念。就是说在主板上提供一个接口。让键盘和鼠标的厂商去实现 * 这些接口。这样他们的设备就能接到这个主板上。就可以被主板识别并使用了。 * 如:鼠标实现了USB接口,就可以在这个主板上随时插拨了。使用也方便了。 * 即使是现在没有的产品。在若干年之后,用户再往接符合USB规范的设备也都是可以 * 使用的。这就是接口的好处。降低了耦合性。 */public static void main(String[] args) {useUsb(new UsbMp3Player("纽曼MP3"));useUsb(new UsbPrinter("爱普生数码相片打印机"));useUsb(new UsbCamera("QQ摄像头"));}// 对于电脑来说它有使用USB接口的功能// 它可以接收任何USB规则的产品public static void useUsb(USB usb) {usb.insert();usb.take();}}// 设置这个USB接口的规划interface USB {// 它有插入USB的功能和移除的功能// 可以回顾一下面向对象的分析与设计:// 谁拥有数据,就把操作这个数据的方法给谁// 我们插入USB产品到插口上。是接口最清楚的。所以插入和移除的方法要放在接口上// 但是我们又不知道以后用户要插入的具体是什么产品?// 所以我们就要把这个方法进行抽取。我们只抽取方法的声明。因为它们都是有插入和移除的功能。// 把插入和移除的具体的内容交给子类去具体的实现public abstract void insert();public abstract void take();}// 创建USB产品// USB mp3播放器class UsbMp3Player implements USB {private String name;public UsbMp3Player(String name) {this.name = name;}@Overridepublic void insert() {System.out.println("设备:" + this.name + ",插入到了USB接口");}@Overridepublic void take() {System.out.println("设备:" + this.name + ",从USB接口移除了");}}// USB打印机class UsbPrinter implements USB {private String name;public UsbPrinter(String name) {this.name = name;}@Overridepublic void insert() {System.out.println("设备:" + this.name + ",插入到了USB接口");}@Overridepublic void take() {System.out.println("设备:" + this.name + ",从USB接口移除了");}}class UsbCamera implements USB {private String name;public UsbCamera(String name) {this.name = name;}@Overridepublic void insert() {System.out.println("设备:" + this.name + ",插入到了USB接口");}@Overridepublic void take() {System.out.println("设备:" + this.name + ",从USB接口移除了");}}
0 0
- 《黑马程序员》 笔记本USB接口应用分析与设计
- 黑马程序员---java面向对象分析与设计
- 黑马程序员 面向对象的分析与设计
- 黑马程序员_面向对象思想分析与设计
- 黑马程序员_面向对象的情景分析与设计
- 黑马程序员 面向对象的分析与设计
- 黑马程序员 面向对象分析与设计的原则
- 黑马程序员_交通灯系统的设计、分析与实现
- 《黑马程序员》 接口之工厂设计模式
- 笔记本蓝牙模块转USB接口方法
- USB数据传输设计与应用(二)
- 黑马程序员java基础单例模式设计、继承与接口知识整合
- 黑马程序员_Thread类与Runnable接口
- 黑马程序员--抽象类与接口
- 黑马程序员_java继承与接口
- 黑马程序员----接口与多态
- 黑马程序员----抽象类、与接口
- 黑马程序员:抽象类与接口
- linux下安装mysql出现错误conflicts with file from package
- ICE学习(四)-Ice Box介绍
- 一步一步炼代码之多线程篇(二)经典PV问题
- MFC开发链接库的选择
- mvc3 easyui 异常帮助类 (封装 try catch操作和统一调用 增删改查 方法) 和 easy ui 帮助类
- 《黑马程序员》 笔记本USB接口应用分析与设计
- grub rescue的修复
- makefile--隐含规则
- OC & C++运用回调函数
- SharedPreferences详解
- Console命令详解,让调试js代码变得更简单
- Office365中的Office On Demand功能介绍
- STL vector 容器介绍
- CSS + DIV 让页脚始终底部