类模式实现:

class HeadphoneInterface {
public:
    virtual void play() = 0;
    virtual void pause() = 0;
    virtual void stop() = 0;
};

class ThreePointFiveInterface : public HeadphoneInterface {
public:
    void play() override {
        // 3.5mm接口播放实现
    }
    void pause() override {
        // 3.5mm接口暂停实现
    }
    void stop() override {
        // 3.5mm接口停止实现
    }
};

class TwoPointFiveInterface : public HeadphoneInterface {
public:
    void play() override {
        // 2.5mm接口播放实现
    }
    void pause() override {
        // 2.5mm接口暂停实现
    }
    void stop() override {
        // 2.5mm接口停止实现
    }
};

class USBTypeCInterface : public HeadphoneInterface {
public:
    void play() override {
        // USB Type-C接口播放实现
    }
    void pause() override {
        // USB Type-C接口暂停实现
    }
    void stop() override {
        // USB Type-C接口停止实现
    }
};

class LightingInterface : public HeadphoneInterface {
public:
    void play() override {
        // lighting接口播放实现
    }
    void pause() override {
        // lighting接口暂停实现
    }
    void stop() override {
        // lighting接口停止实现
    }
};

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

class ThreePointFiveAdapter : public HeadphoneAdapter {
public:
    HeadphoneInterface* getInterface() override {
        return new ThreePointFiveInterface();
    }
};

class TwoPointFiveAdapter : public HeadphoneAdapter {
public:
    HeadphoneInterface* getInterface() override {
        return new TwoPointFiveInterface();
    }
};

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

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

对象模式实现:

class HeadphoneInterface {
public:
    virtual void play() = 0;
    virtual void pause() = 0;
    virtual void stop() = 0;
};

class ThreePointFiveInterface : public HeadphoneInterface {
public:
    void play() override {
        // 3.5mm接口播放实现
    }
    void pause() override {
        // 3.5mm接口暂停实现
    }
    void stop() override {
        // 3.5mm接口停止实现
    }
};

class TwoPointFiveInterface : public HeadphoneInterface {
public:
    void play() override {
        // 2.5mm接口播放实现
    }
    void pause() override {
        // 2.5mm接口暂停实现
    }
    void stop() override {
        // 2.5mm接口停止实现
    }
};

class USBTypeCInterface : public HeadphoneInterface {
public:
    void play() override {
        // USB Type-C接口播放实现
    }
    void pause() override {
        // USB Type-C接口暂停实现
    }
    void stop() override {
        // USB Type-C接口停止实现
    }
};

class LightingInterface : public HeadphoneInterface {
public:
    void play() override {
        // lighting接口播放实现
    }
    void pause() override {
        // lighting接口暂停实现
    }
    void stop() override {
        // lighting接口停止实现
    }
};

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

class ThreePointFiveAdapter : public HeadphoneAdapter {
private:
    ThreePointFiveInterface interface;
public:
    HeadphoneInterface* getInterface() override {
        return &interface;
    }
};

class TwoPointFiveAdapter : public HeadphoneAdapter {
private:
    TwoPointFiveInterface interface;
public:
    HeadphoneInterface* getInterface() override {
        return &interface;
    }
};

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

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

类图:

![headphone_interface_adapter](https://user-images.githubusercontent.com/87290343/129450461-5a4d8d4f-9e5a-4c8a-9b7e-6f3f3a8f9f04.png


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

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