当前位置: 首页 > news >正文

佛山专业网站建设公司哪家好住宅装饰装修工程施工规范

佛山专业网站建设公司哪家好,住宅装饰装修工程施工规范,个人网站制作 教程,从事网站建文章目录 概述原理结构图代码示例 小结 概述 桥接模式(bridge pattern) 的定义是:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联来取代传统的多层继承,将类之间的静态继承关系转…

文章目录

  • 概述
  • 原理
  • 结构图
    • 代码示例
  • 小结

概述

桥接模式(bridge pattern) 的定义是:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关联来取代传统的多层继承,将类之间的静态继承关系转变为动态的组合关系,使得系统更加灵活,并易于扩展,有效的控制了系统中类的个数 (避免了继承层次的指数级爆炸).

原理

桥接(Bridge)模式包含以下主要角色:

  • 抽象化(Abstraction)角色 :主要负责定义出该角色的行为 ,并包含一个对实现化对象的引用。
  • 扩展抽象化(RefinedAbstraction)角色 :是抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。
  • 实现化(Implementor)角色 :定义实现化角色的接口,包含角色必须的行为和属性,并供扩展抽象化角色调用。
  • 具体实现化(Concrete Implementor)角色 :给出实现化角色接口的具体实现。

结构图

在这里插入图片描述

代码示例

来看下代码示例吧,如下图:

// Implementor.h
#ifndef IMPLEMENTOR_H
#define IMPLEMENTOR_Hclass Implementor {
public:virtual ~Implementor() {}virtual void OperationImpl() = 0;
};#endif // IMPLEMENTOR_H

// ConcreteImplementorA.h
#ifndef CONCRETEIMPLEMENTORA_H
#define CONCRETEIMPLEMENTORA_H#include "Implementor.h"class ConcreteImplementorA : public Implementor {
public:void OperationImpl() override {// Concrete implementation Astd::cout << "Concrete Implementor A" << std::endl;}
};#endif // CONCRETEIMPLEMENTORA_H
// ConcreteImplementorB.h
#ifndef CONCRETEIMPLEMENTORB_H
#define CONCRETEIMPLEMENTORB_H#include "Implementor.h"class ConcreteImplementorB : public Implementor {
public:void OperationImpl() override {// Concrete implementation Bstd::cout << "Concrete Implementor B" << std::endl;}
};
// Abstraction.h
#ifndef ABSTRACTION_H
#define ABSTRACTION_H#include "Implementor.h"class Abstraction {
protected:Implementor* implementor;public:Abstraction(Implementor* implementor) : implementor(implementor) {}virtual ~Abstraction() { delete implementor; }virtual void Operation() = 0;
};
/ RefinedAbstraction.h
#ifndef REFINEDABSTRACTION_H
#define REFINEDABSTRACTION_H#include "Abstraction.h"class RefinedAbstraction : public Abstraction {
public:RefinedAbstraction(Implementor* implementor) : Abstraction(implementor) {}void Operation() override {// Refined operationstd::cout << "Refined Abstraction" << std::endl;implementor->OperationImpl();}
};
/ main.cpp
#include <iostream>
#include "Abstraction.h"
#include "ConcreteImplementorA.h"
#include "ConcreteImplementorB.h"
#include "RefinedAbstraction.h"int main() {ConcreteImplementorA* implementorA = new ConcreteImplementorA();ConcreteImplementorB* implementorB = new ConcreteImplementorB();Abstraction* abstractionA = new RefinedAbstraction(implementorA);Abstraction* abstractionB = new RefinedAbstraction(implementorB);abstractionA->Operation();abstractionB->Operation();delete abstractionA;delete abstractionB;return 0;
}

小结

上边有桥接模式的概述,原理,以及代码示例。看起来不错吧,感兴趣,可以一起学习学习。

http://www.yayakq.cn/news/118828/

相关文章:

  • 哪里有手机网站建设联系方式用php做网站视频
  • 滕州本地网站建设网站首页模板
  • 无锡信息网站建设查关键词排名
  • 室内设计师网站有哪些下面不属于网络推广方法
  • 洛阳制作网站公司哪家好百度免费邮箱注册
  • 长春网站快速优化排名做微信平台网站
  • seo包括网站建设吗注册1000万公司每年费用多少
  • 海淀网站建设哪家公司好企业管理软件的发展趋势
  • 四川企业网站建设平台网站开发的技术难点
  • wordpress网站静态页面生成seo推广seo技术培训
  • c 做游戏的网站教学小程序制作侧拉切换
  • 汕头网站建设平台wordpress linux版本号
  • 什么是网站推广?芜湖市建设工程网站维护公告
  • 舟山市建设工程质量监督站网站网站建设合同用缴印花税吗
  • 报名网站建设费用报价装配式建筑信息平台
  • 河南省住房和城乡建设厅人教处网站属于c2c网站的有哪几个
  • wordpress建站 东莞视频广告网站
  • 网站维护总结建设银行怎么从网站上改手机号码
  • access 网站开发wordpress动画插件
  • wordpress安装地址修改企业网站排名优化价格
  • 商务网站设计实训报告制作网页的心得
  • 代售网站建设做外贸收费的服装网站
  • 常州市城乡建设学院网站北京网站建设模板下载
  • wordpress主题发布站源码推广普通话文字内容
  • 免费网站大全下载贸易公司注册条件
  • 网上做翻译兼职网站好网站建设销售找客源
  • 域名买好怎么开始做网站想做一个部门的网站怎么做
  • 天河做网站开发诚信通开了网站谁给做
  • 网站做好了怎么做后台管理宝安专业做网站
  • 网站建设 服务质量保证wordpress注册用户无法登录