类模式实现:

class HeadphoneInterface {
public:
    virtual void playMusic() = 0;
};

class ThreePointFiveMMInterface : public HeadphoneInterface {
public:
    void playMusic() override {
        std::cout << "Playing music through 3.5mm interface." << std::endl;
    }
};

class TwoPointFiveMMInterface : public HeadphoneInterface {
public:
    void playMusic() override {
        std::cout << "Playing music through 2.5mm interface." << std::endl;
    }
};

class USBTypeCInterface : public HeadphoneInterface {
public:
    void playMusic() override {
        std::cout << "Playing music through USB Type-C interface." << std::endl;
    }
};

class LightingInterface : public HeadphoneInterface {
public:
    void playMusic() override {
        std::cout << "Playing music through Lighting interface." << std::endl;
    }
};

class HeadphoneAdapter {
public:
    virtual HeadphoneInterface* getInterface() = 0;
};

class ThreePointFiveMMAdapter : public HeadphoneAdapter {
public:
    HeadphoneInterface* getInterface() override {
        return new ThreePointFiveMMInterface();
    }
};

class TwoPointFiveMMAdapter : public HeadphoneAdapter {
public:
    HeadphoneInterface* getInterface() override {
        return new TwoPointFiveMMInterface();
    }
};

class USBTypeCAdapter : public HeadphoneAdapter {
public:
    HeadphoneInterface* getInterface() override {
        return new USBTypeCInterface();
    }
};

class LightingAdapter : public HeadphoneAdapter {
public:
    HeadphoneInterface* getInterface() override {
        return new LightingInterface();
    }
};

类图如下:

class_diagram

对象模式实现:

class HeadphoneInterface {
public:
    virtual void playMusic() = 0;
};

class ThreePointFiveMMInterface : public HeadphoneInterface {
public:
    void playMusic() override {
        std::cout << "Playing music through 3.5mm interface." << std::endl;
    }
};

class TwoPointFiveMMInterface : public HeadphoneInterface {
public:
    void playMusic() override {
        std::cout << "Playing music through 2.5mm interface." << std::endl;
    }
};

class USBTypeCInterface : public HeadphoneInterface {
public:
    void playMusic() override {
        std::cout << "Playing music through USB Type-C interface." << std::endl;
    }
};

class LightingInterface : public HeadphoneInterface {
public:
    void playMusic() override {
        std::cout << "Playing music through Lighting interface." << std::endl;
    }
};

class HeadphoneAdapter {
private:
    HeadphoneInterface* interface;
public:
    HeadphoneAdapter(HeadphoneInterface* interface) : interface(interface) {}
    void playMusic() {
        interface->playMusic();
    }
};

int main() {
    HeadphoneInterface* interface = new ThreePointFiveMMInterface();
    HeadphoneAdapter* adapter = new HeadphoneAdapter(interface);
    adapter->playMusic();
    delete adapter;
    delete interface;
    return 0;
}

类图如下:

![object_diagram](object_diagram.png

35mm接口及25mm接口usb type-c接口lighting接口。分别用类模式和对象模式实现耳机接口的转换c++代码和类图

原文地址: https://www.cveoy.top/t/topic/hjkY 著作权归作者所有。请勿转载和采集!

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