C++ 设计模式-适配器模式

时间:2025-02-15 09:31:05
#include <iostream> #include <memory> #include <stdexcept> // 抽象目标接口:通用电源接口 class PowerOutlet { public: virtual ~PowerOutlet() = default; virtual int outputPower() const = 0; virtual std::string plugType() const = 0; }; // 具体目标接口1:中国标准USB插座 (期望5V) class ChinaUSBSocket : public PowerOutlet { public: int outputPower() const override { return 5; } std::string plugType() const override { return "USB-A"; } }; // 具体目标接口2:欧洲标准插座 (期望12V) class EuropeSocket : public PowerOutlet { public: int outputPower() const override { return 12; } std::string plugType() const override { return "Europlug"; } }; // 被适配类集合--------------------------------- class ChineseWallOutlet { // 中国标准220V public: int output220V() const { return 220; } std::string shape() const { return "Flat 3-pin"; } }; class AmericanOutlet { // 美国标准110V public