35mm接口及25mm接口;USB Type-C接口;lighting接口 分别用类模式和对象模式实现耳机接口的转换 给出以上c++代码和类图
类模式实现:
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 著作权归作者所有。请勿转载和采集!