• 设计模式复习-桥接模式


    #pragma once
    #include "stdafx.h"
    #include<set>
    #include<string>
    #include<iostream>
    using namespace std;
    
    /*
    	设计模式-桥接模式(Bridge)
    	将抽象部分与它的实现部分分离,使他们都可以独立地变化。
    */
    
    class CImplementor {
    public:
    	virtual void Operation() = 0;
    };
    
    class CConcreteImplementorA :public CImplementor {
    public:
    	void Operation() {
    		cout << "Execution method A" << endl;
    	}
    };
    
    class CConcreteImplementorB :public CImplementor {
    public:
    	void Operation() {
    		cout << "Execution method B" << endl;
    	}
    };
    
    class CAbstraction {
    protected:
    	CImplementor * m_pImplementor;
    public:
    	CAbstraction() {
    		m_pImplementor = NULL;
    	}
    	void SetImplementor(CImplementor *pImplementor) {
    		m_pImplementor = pImplementor;
    	}
    	virtual void Operation() = 0;
    };
    
    class CRefinedAbstraction :public CAbstraction {
    
    public:
    	void Operation() {
    		if (m_pImplementor != NULL) {
    			m_pImplementor->Operation();
    		}
    	}
    
    };
    
    
    
    int main() {
    
    	CAbstraction *pAb = new CRefinedAbstraction();
    	CConcreteImplementorA *pcA = new CConcreteImplementorA();
    	CConcreteImplementorB *pcB = new CConcreteImplementorB();
    	pAb->SetImplementor(pcA);
    	pAb->Operation();
    	pAb->SetImplementor(pcB);
    	pAb->Operation();
    	
    	getchar();
    	return 0;
    }

  • 相关阅读:
    2.4 学习总计 之 自己实现底部导航
    2.3 学习总结 之 分页查询
    2.2 学习总结 之 servlet 的两次抽取
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
  • 原文地址:https://www.cnblogs.com/csnd/p/12061909.html
Copyright © 2020-2023  润新知