类模式实现:

代码:

// 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");
    }
}

类图:

class_diagram

对象模式实现:

代码:

// 耳机接口
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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录