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();

}

}

 

版权声明:本文为Colaandcookie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Colaandcookie/p/9563264.html