《黑马程序员》 笔记本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
原创粉丝点击