博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第三章 笔记本电脑案例
阅读量:5984 次
发布时间:2019-06-20

本文共 1453 字,大约阅读时间需要 4 分钟。

3.1 案例介绍

定义USB接口(具备开启功能、关闭功能),笔记本要使用USB设备,即笔记本在生产时需要预留可以插入USB设备的USB接口,即就是笔记本具备使用USB设备的功能,但具体是什么USB设备,笔记本并不关心,只要符合USB规格的设备都可以。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,不然鼠标和键盘的生产出来无法使用

进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘

  • USB接口,包含开启功能、关闭功能
  • 笔记本类,包含运行功能、关机功能、使用USB设备功能
  • 鼠标类,要符合USB接口
  • 键盘类,要符合USB接口

3.2 案例需求分析

阶段一:

使用笔记本,笔记本有运行功能,需要笔记本对象来运行这个功能

阶段二:

想使用一个鼠标,又有一个功能使用鼠标,并多了一个鼠标对象。

阶段三:

还想使用一个键盘 ,又要多一个功能和一个对象

问题:每多一个功能就需要在笔记本对象中定义一个方法,不爽,程序扩展性极差。

降低鼠标、键盘等外围设备和笔记本电脑的耦合性。

3.3 实现代码步骤

  • 定义鼠标、键盘,笔记本三者之间应该遵守的规则

interface USB {

void open();// 开启功能

 

void close();// 关闭功能

}

 

  • 鼠标实现USB规则

class Mouse implements USB {

public void open() {

System.out.println("鼠标开启");

}

 

public void close() {

System.out.println("鼠标关闭");

}

}

 

  • 键盘实现USB规则

class KeyBoard implements USB {

public void open() {

System.out.println("键盘开启");

}

 

public void close() {

System.out.println("键盘关闭");

}

}

 

  • 定义笔记本

class NoteBook {

// 笔记本开启运行功能

public void run() {

System.out.println("笔记本运行");

}

 

// 笔记本使用usb设备,这时当笔记本对象调用这个功能时,必须给其传递一个符合USB规则的USB设备

public void useUSB(USB usb) {

// 判断是否有USB设备

if (usb != null) {

usb.open();

usb.close();

}

}

 

public void shutDown() {

System.out.println("笔记本关闭");

}

}

 

public class Test {

public static void main(String[] args) {

// 创建笔记本实体对象

NoteBook nb = new NoteBook();

// 笔记本开启

nb.run();

 

// 创建鼠标实体对象

Mouse m = new Mouse();

// 笔记本使用鼠标

nb.useUSB(m);

 

// 创建键盘实体对象

KeyBoard kb = new KeyBoard();

// 笔记本使用键盘

nb.useUSB(kb);

 

// 笔记本关闭

nb.shutDown();

}

}

 

转载于:https://www.cnblogs.com/Colaandcookie/p/9563264.html

你可能感兴趣的文章
Node.js的npm全局安装包引用
查看>>
js事件杂谈
查看>>
SQL Server基础知识 -- SQL 用于各种数据库的数据类型
查看>>
angularjs~ng-class
查看>>
我的友情链接
查看>>
Win 2008 R2安装SQL Server 2008“性能计数器注册表配置单元一致性”失败的解决办法...
查看>>
ROS标记时需要注意的
查看>>
django之防止csrf跨站***
查看>>
applicationcontext.xml怎么分模块简化配置
查看>>
Django Admin
查看>>
Android 70道面试题汇总不再愁面试
查看>>
从ArrayList说起的JAVA复制与参数传递机制
查看>>
Servlet
查看>>
比较好的网站及工具
查看>>
Keychain
查看>>
Webview图片自适应
查看>>
使用 getopt() 进行命令行处理
查看>>
js去掉html标记,中正则表达式,去掉字符,截取字符
查看>>
使用Akka Http,ActiveMQ搭建一个邮件发送服务器
查看>>
kvm starting domain: cannot send monitor command
查看>>