35mm接口及25mm接口usb type-c接口lighting接口。分别用类模式和对象模式实现耳机接口的转换代码和类图
类模式实现:
代码:
// 3.5mm接口
class AudioJack35mm {
public void playAudio() {
System.out.println("Playing audio through 3.5mm audio jack.");
}
}
// 2.5mm接口
class AudioJack25mm {
public void playAudio() {
System.out.println("Playing audio through 2.5mm audio jack.");
}
}
// USB Type-C接口
class USBTypeC {
public void playAudio() {
System.out.println("Playing audio through USB Type-C port.");
}
}
// Lighting接口
class Lighting {
public void playAudio() {
System.out.println("Playing audio through Lighting port.");
}
}
// 耳机接口适配器
class HeadphoneAdapter {
private AudioJack35mm audioJack35mm;
private AudioJack25mm audioJack25mm;
private USBTypeC usbTypeC;
private Lighting lighting;
public HeadphoneAdapter() {
audioJack35mm = new AudioJack35mm();
audioJack25mm = new AudioJack25mm();
usbTypeC = new USBTypeC();
lighting = new Lighting();
}
public void playAudio(String interfaceType) {
if (interfaceType.equalsIgnoreCase("3.5mm")) {
audioJack35mm.playAudio();
} else if (interfaceType.equalsIgnoreCase("2.5mm")) {
audioJack25mm.playAudio();
} else if (interfaceType.equalsIgnoreCase("usb type-c")) {
usbTypeC.playAudio();
} else if (interfaceType.equalsIgnoreCase("lighting")) {
lighting.playAudio();
} else {
System.out.println("Invalid interface type.");
}
}
}
// 测试类
public class Test {
public static void main(String[] args) {
HeadphoneAdapter adapter = new HeadphoneAdapter();
adapter.playAudio("3.5mm");
adapter.playAudio("2.5mm");
adapter.playAudio("usb type-c");
adapter.playAudio("lighting");
adapter.playAudio("invalid");
}
}
类图:

对象模式实现:
代码:
// 耳机接口
interface HeadphoneInterface {
void playAudio();
}
// 3.5mm接口
class AudioJack35mm implements HeadphoneInterface {
public void playAudio() {
System.out.println("Playing audio through 3.5mm audio jack.");
}
}
// 2.5mm接口
class AudioJack25mm implements HeadphoneInterface {
public void playAudio() {
System.out.println("Playing audio through 2.5mm audio jack.");
}
}
// USB Type-C接口
class USBTypeC implements HeadphoneInterface {
public void playAudio() {
System.out.println("Playing audio through USB Type-C port.");
}
}
// Lighting接口
class Lighting implements HeadphoneInterface {
public void playAudio() {
System.out.println("Playing audio through Lighting port.");
}
}
// 耳机接口适配器
class HeadphoneAdapter {
private HeadphoneInterface headphoneInterface;
public HeadphoneAdapter(String interfaceType) {
if (interfaceType.equalsIgnoreCase("3.5mm")) {
headphoneInterface = new AudioJack35mm();
} else if (interfaceType.equalsIgnoreCase("2.5mm")) {
headphoneInterface = new AudioJack25mm();
} else if (interfaceType.equalsIgnoreCase("usb type-c")) {
headphoneInterface = new USBTypeC();
} else if (interfaceType.equalsIgnoreCase("lighting")) {
headphoneInterface = new Lighting();
} else {
System.out.println("Invalid interface type.");
}
}
public void playAudio() {
if (headphoneInterface != null) {
headphoneInterface.playAudio();
}
}
}
// 测试类
public class Test {
public static void main(String[] args) {
HeadphoneAdapter adapter1 = new HeadphoneAdapter("3.5mm");
adapter1.playAudio();
HeadphoneAdapter adapter2 = new HeadphoneAdapter("2.5mm");
adapter2.playAudio();
HeadphoneAdapter adapter3 = new HeadphoneAdapter("usb type-c");
adapter3.playAudio();
HeadphoneAdapter adapter4 = new HeadphoneAdapter("lighting");
adapter4.playAudio();
HeadphoneAdapter adapter5 = new HeadphoneAdapter("invalid");
adapter5.playAudio();
}
}
类图:
![class_diagram](https://i.imgur.com/YsJ4B6k.png
原文地址: https://www.cveoy.top/t/topic/hjkP 著作权归作者所有。请勿转载和采集!