适配器模式(Adapter)

#include <iostream> using namespace std; class ThreePhaseOutlet { public: void doThreePhasePlug() { cout << "三相插头接入" << endl; } }; class TwoPhaseOutlet { public: virtual void doPlug() = 0; }; class OutletConverter :public TwoPhaseOutlet, public ThreePhaseOutlet { public: void doPlug() { doConvertor(); doThreePhasePlug(); } void doConvertor() { cout << "我们正在将三相插头转为两相插头" << endl; } }; //对象适配,它可以更加灵活一些 class OutletObjConvertor :public TwoPhaseOutlet { public: OutletObjConvertor(ThreePhaseOutlet* pOut) :m_pOut(pOut) { } void doPlug() { doConvert(); m_pOut->doThreePhasePlug(); } void doConvert() { cout << "我们正在对一个二相插头本身进行转化" << endl; } private: ThreePhaseOutlet* m_pOut; }; int main(void) { /*TwoPhaseOutlet* pOutlet = new OutletConverter(); pOutlet->doPlug();*/ TwoPhaseOutlet* pOutlet = new OutletObjConvertor(new ThreePhaseOutlet); pOutlet->doPlug(); system("pause"); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!