设计模式---桥接模式(C++实现)
2017-03-13 09:53
260 查看
/**************************************************************************************
Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,
聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点
是把抽象(abstraction)与行为实现(implementation)分离开来,
从而可以保持各部分的独立性以及应对它们的功能扩展。
适用于:
桥接模式(Bridge Pattern)是将抽象部分与实现部分分离(解耦合),使它们都可以独立的变化。
实现方法:
创建一个抽象类定义接口,然后不同的子类去实现此接口
然后定义一个使用此功能函数的类,在这个类中通过传递来的指针对象去操作它的函数
这里的桥接桥接的都是同一个函数(所以才会叫桥接)
通过中间人搭桥(车这个中间人)
**************************************************************************************/
#include <iostream>
using namespace std;
//需要把“安装发动机”这个事,做很好的分解;把抽象 和 行为实现 分开
//发动机是一个名词语,专门抽象成一个类;类中含有一个成员函数,安装发动机
class Engine;
class Car
{
public:
Car(Engine *pengine)
{ m_engine = pengine;}
virtual void installEngine() = 0;
protected:
Engine *m_engine;
};
class Engine
{
public:
virtual void installEngine() = 0;
};
class Engine4000 : public Engine
{
public:
virtual void installEngine()
{ cout << "安装发动机 Engine4000" << endl;}
};
class Engine3500 : public Engine
{
public:
virtual void installEngine()
{ cout << "安装发动机 Engine 3500" << endl;}
};
class BMW7 :public Car
{
public:
BMW7(Engine *p) : Car(p)
{ }
virtual void installEngine()//注意车的安装 和 发动机的安装 不同之处
{
cout << "BMW7 ";
m_engine->installEngine();
}
protected:
private:
};
void main()
{
Engine4000 *e4000 = new Engine4000; //创建一个发动机,然后返回发动机的基类指针
BMW7 *bmw7 = new BMW7(e4000); //然后将此指针传递给,想要安装此发动机的车,基类和派生类中都初始化此发动机
bmw7->installEngine();//然后车子在调用安装发动机(在此函数中完成发动机的安装(在自己的地盘操纵别人的函数))
delete bmw7;
delete e4000;
system("pause");
}
来源:传智博客---王保明
Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,
聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点
是把抽象(abstraction)与行为实现(implementation)分离开来,
从而可以保持各部分的独立性以及应对它们的功能扩展。
适用于:
桥接模式(Bridge Pattern)是将抽象部分与实现部分分离(解耦合),使它们都可以独立的变化。
实现方法:
创建一个抽象类定义接口,然后不同的子类去实现此接口
然后定义一个使用此功能函数的类,在这个类中通过传递来的指针对象去操作它的函数
这里的桥接桥接的都是同一个函数(所以才会叫桥接)
通过中间人搭桥(车这个中间人)
**************************************************************************************/
#include <iostream>
using namespace std;
//需要把“安装发动机”这个事,做很好的分解;把抽象 和 行为实现 分开
//发动机是一个名词语,专门抽象成一个类;类中含有一个成员函数,安装发动机
class Engine;
class Car
{
public:
Car(Engine *pengine)
{ m_engine = pengine;}
virtual void installEngine() = 0;
protected:
Engine *m_engine;
};
class Engine
{
public:
virtual void installEngine() = 0;
};
class Engine4000 : public Engine
{
public:
virtual void installEngine()
{ cout << "安装发动机 Engine4000" << endl;}
};
class Engine3500 : public Engine
{
public:
virtual void installEngine()
{ cout << "安装发动机 Engine 3500" << endl;}
};
class BMW7 :public Car
{
public:
BMW7(Engine *p) : Car(p)
{ }
virtual void installEngine()//注意车的安装 和 发动机的安装 不同之处
{
cout << "BMW7 ";
m_engine->installEngine();
}
protected:
private:
};
void main()
{
Engine4000 *e4000 = new Engine4000; //创建一个发动机,然后返回发动机的基类指针
BMW7 *bmw7 = new BMW7(e4000); //然后将此指针传递给,想要安装此发动机的车,基类和派生类中都初始化此发动机
bmw7->installEngine();//然后车子在调用安装发动机(在此函数中完成发动机的安装(在自己的地盘操纵别人的函数))
delete bmw7;
delete e4000;
system("pause");
}
来源:传智博客---王保明
相关文章推荐
- 设计模式C++实现(10)——桥接模式
- 设计模式---桥接模式(C++实现)
- 设计模式C++实现(10)——桥接模式
- 设计模式之桥接模式 及 c++ 实现
- 桥接模式及C++实现 C++设计模式-AbstractFactory抽象工厂模式
- 设计模式C++实现--桥接模式
- 设计模式C++实现(10)——桥接模式
- 通过例子学设计模式之--桥接模式以及使用场景说明(C++实现)
- 设计模式C++实现(5)——桥接模式
- 设计模式学习(C++实现)6--桥接模式
- 设计模式C++实现(10)——桥接模式
- 常见设计模式的解析和实现(C++)之十七-State模式
- 常见设计模式的解析和实现(C++)之十九-Memento模式
- 常见设计模式的解析和实现(C++)之五-Singleton模式
- 常见设计模式的解析和实现(C++)之一-Factory模式
- 设计模式与VB .net实现 桥接模式,单件模式
- 常见设计模式的解析和实现(C++)之十五-Observer模式
- 常见设计模式的解析和实现(C++)之十一-TemplateMethod模式
- 常见设计模式的解析和实现(C++)之二-Abstract Factory模式
- 设计模式---单件(C++版) 比较通用的单件模式(STL实现)