桥梁模式Bridge

    xiaoxiao2022-06-29  38

    桥梁模式是结构型模式的一种,之所以叫做桥梁模式是因为它的UML图画出来像一个桥梁,抽象和实现分居两头,都能独立的变化。

    当抽象接口变化时,我们只需要重新添加一个抽象的子类;当实现变化时,我们只需要添加一个实现的子类。

    下面给出UML类图和C++示例代码:

    #ifndef __BRIDGE_H__ #define __BRIDGE_H__ class IImpl { protected: IImpl() {} virtual ~IImpl() {} public: virtual void TestImpl() = 0; }; class CImplA : public IImpl { public: CImplA() {} ~CImplA() {} public: void TestImpl() {printf("CImplA::TestImpl()\n");} }; class CImplB : public IImpl { public: CImplB() {} ~CImplB() {} public: void TestImpl() {printf("CImplB::TestImpl()\n");} }; class IAbstract { protected: IAbstract(IImpl* pImpl) {m_pImpl = pImpl;} virtual ~IAbstract() {} public: virtual void Test() = 0; protected: IImpl* m_pImpl; }; class CAbstract : public IAbstract { public: CAbstract(IImpl* pImpl) : IAbstract(pImpl) {} public: void Test() {m_pImpl->TestImpl();} }; #endif // __BRIDGE_H__#include "stdafx.h" #include "Bridge.h" int _tmain(int argc, _TCHAR* argv[]) { IAbstract* pA = new CAbstract(new CImplA); pA->Test(); IAbstract* pB = new CAbstract(new CImplB); pB->Test(); getchar(); return 0; }

    ithewei 认证博客专家 c/c Qt libhv 编程之路,其路漫漫,吾将上下而求索https://github.com/itheweihttps://hewei.blog.csdn.net
    转载请注明原文地址: https://ju.6miu.com/read-1125299.html

    最新回复(0)