1. 类模式实现
// 3.5mm接口转2.5mm接口的转换类
class AudioAdapter35To25 {
public:
    void connect35mm() {
        cout << "3.5mm接口已连接" << endl;
    }
    void convert() {
        cout << "已转换为2.5mm接口" << endl;
    }
    void connect25mm() {
        cout << "2.5mm接口已连接" << endl;
    }
};

// USB Type-C接口转3.5mm接口的转换类
class AudioAdapterUsbTo35 {
public:
    void connectUsb() {
        cout << "USB Type-C接口已连接" << endl;
    }
    void convert() {
        cout << "已转换为3.5mm接口" << endl;
    }
    void connect35mm() {
        cout << "3.5mm接口已连接" << endl;
    }
};

// lighting接口转3.5mm接口的转换类
class AudioAdapterLightingTo35 {
public:
    void connectLighting() {
        cout << "lighting接口已连接" << endl;
    }
    void convert() {
        cout << "已转换为3.5mm接口" << endl;
    }
    void connect35mm() {
        cout << "3.5mm接口已连接" << endl;
    }
};
  1. 对象模式实现
// 转换接口的基类
class AudioAdapter {
public:
    virtual void connect() = 0;
    virtual void convert() = 0;
};

// 3.5mm接口转2.5mm接口的转换类
class AudioAdapter35To25 : public AudioAdapter {
public:
    void connect() {
        cout << "3.5mm接口已连接" << endl;
    }
    void convert() {
        cout << "已转换为2.5mm接口" << endl;
    }
};

// USB Type-C接口转3.5mm接口的转换类
class AudioAdapterUsbTo35 : public AudioAdapter {
public:
    void connect() {
        cout << "USB Type-C接口已连接" << endl;
    }
    void convert() {
        cout << "已转换为3.5mm接口" << endl;
    }
};

// lighting接口转3.5mm接口的转换类
class AudioAdapterLightingTo35 : public AudioAdapter {
public:
    void connect() {
        cout << "lighting接口已连接" << endl;
    }
    void convert() {
        cout << "已转换为3.5mm接口" << endl;
    }
};

// 耳机类
class Headphone {
private:
    AudioAdapter* adapter;

public:
    Headphone(AudioAdapter* adapter) {
        this->adapter = adapter;
    }

    void connect() {
        adapter->connect();
    }

    void convert() {
        adapter->convert();
    }
};
``

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

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