用模板改进的 Bridge 模式

    技术2026-10-02  6

    实现部分有时候是不会有太大变动的,但还是用虚函数,效率上不高。可用模板将实现部分参数化。

    public: void operation() { doOperation(); } protected: virtual void doOperation() = 0; private: }; class ConcretImplA { public: virtual void opimp() { cout << "ImplA" << endl; } }; class ConcretImplB { public: virtual void opimp() { cout << "ImplB" << endl; } }; template <class T> class Refined: public Abstraction { public: Refined(T* imp): imp_(imp) {} virtual void doOperation() { imp_->opimp(); } private: T* imp_; }; int main() { ConcretImplB implb; ConcretImplA impla; Abstraction* absa = new Refined<ConcretImplA>(&impla); Abstraction* absb = new Refined<ConcretImplB>(&implb); absa->operation(); absb->operation(); getchar(); } 

    最新回复(0)