35mm接口及25mm接口;USB Type-c接口;lighting接口。用类模式实现耳机接口的转接。用C++给出代码。
首先定义一个接口类,包含一个纯虚函数:
class HeadphoneInterface {
public:
virtual void connect() = 0;
};
然后定义三个具体的接口类,分别对应3.5mm接口、2.5mm接口和USB Type-c接口:
class Headphone3_5mm : public HeadphoneInterface {
public:
void connect() override {
std::cout << "Connect to 3.5mm interface." << std::endl;
}
};
class Headphone2_5mm : public HeadphoneInterface {
public:
void connect() override {
std::cout << "Connect to 2.5mm interface." << std::endl;
}
};
class HeadphoneTypeC : public HeadphoneInterface {
public:
void connect() override {
std::cout << "Connect to Type-c interface." << std::endl;
}
};
最后定义一个转接器类,包含一个成员变量指向接口类,以及一个函数用于切换接口:
class HeadphoneAdapter {
private:
HeadphoneInterface* interface;
public:
HeadphoneAdapter(HeadphoneInterface* i) : interface(i) {}
void switchInterface(HeadphoneInterface* i) {
interface = i;
}
void connect() {
interface->connect();
}
};
使用示例:
int main() {
Headphone3_5mm h1;
Headphone2_5mm h2;
HeadphoneTypeC h3;
HeadphoneAdapter adapter(&h1);
adapter.connect(); // Connect to 3.5mm interface.
adapter.switchInterface(&h2);
adapter.connect(); // Connect to 2.5mm interface.
adapter.switchInterface(&h3);
adapter.connect(); // Connect to Type-c interface.
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/hjjt 著作权归作者所有。请勿转载和采集!