什么是桥接模式:
在GOF的《设计模式:可复用面向对象软件的基础》一书中对桥接模式是这样说的:将抽象部分和它的实现部分分离,使它们都可以独立的变化。简单粗暴的说,就是抽象对外提供调用的接口;对外隐瞒实现部分,在抽象中引用实现部分,从而实现抽象对实现部分的调用,而抽象中引用的实现部分可以在今后的开发过程中,切换成别的实现部分。
来看一个例子:
有一台电脑需要装系统,这条电脑上可以装Windows、linux、centos、苹果系统等等。我们的抽象类是电脑,实现类是由各种操作系统组成的。
实现代码:
#include <iostream>
using namespace std;
//操作系统
class OS
{
public:
virtual void InstallOS_Imp() {}
};
class WindowOS : public OS
{
public:
void InstallOS_Imp() { cout << "安装Window操作系统" << endl; }
};
class LinuxOS : public OS
{
public:
void InstallOS_Imp() { cout << "安装Linux操作系统" << endl; }
};
class UnixOS : public OS
{
public:
void InstallOS_Imp() { cout << "安装Unix操作系统" << endl; }
};
//计算机
class Computer
{
public:
virtual void InstallOS(OS *os) {}
};
class LenovoCom