设计模式---桥接模式(C++实现)
来源:互联网 发布:手机办公文档软件 编辑:程序博客网 时间:2024/06/07 05:38
/**************************************************************************************
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");
}
来源:传智博客---王保明
0 0
- 设计模式_桥接模式(C++)
- C#--设计模式之桥接模式
- C语言和设计模式(桥接模式)
- C语言和设计模式(桥接模式)
- C语言和设计模式(桥接模式)
- C语言和设计模式(桥接模式)
- 08.C语言和设计模式(桥接模式)
- 19、C语言和设计模式(桥接模式)
- 设计模式——桥接模式(C++)
- 设计模式C++实现--桥接模式
- 设计模式---桥接模式(C++实现)
- 设计模式实现(十八)---桥接模式(Bridge)
- 设计模式的实现(C++)------工厂方法模式(FactoryMethod)
- 设计模式的实现(C++)------抽象工厂模式(AbstractFactory)
- 常见设计模式解析和实现(C++)Adapt模式
- 常见设计模式解析和实现(C++)FlyWeight模式
- 常见设计模式解析和实现(C++)Adapt模式
- 常见设计模式解析和实现(C++)FlyWeight模式
- PCRE正则表达式语法
- 文章标题
- shell获取时间函数和date用法参数
- 以一个简单JDBC示例对比Mybatis环境配置和Spring的数据库环境配置
- 数码管递加递减带消隐
- 设计模式---桥接模式(C++实现)
- 一元多项式的乘法与加法运算
- Zookeeper,Dubbo学习
- 内存对齐原则
- CentOS系统端口占用解决
- Android 后台发邮件
- Android Studio优秀插件分享(持续更新)
- jprofiler9.2注册码
- Java Language Keywords (Java语言关键字)