当前位置: 首页 > 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/319921/

相关文章:

  • 广西北海联友建设网站管理一个完整网站开发需要什么技术
  • 佛山公司网站设计团队网站 建设文档
  • 网站检索功能怎么做呢什么是响应式开发
  • 如何用微信小程序做网站seo排名咨询
  • 东莞网站建设aj工作室如何免费申请公司网站
  • 排名轻松seo 网站推广四川成都住建局官网
  • 怎么样自己建立一个网站网站建设 工商注册
  • asp.net获取网站地址电视台网站建设方案.doc
  • 深圳建筑室内设计网站惠州外贸网站建设公司
  • 苏州外贸网站建设公司价格网站建设颜色注意事项
  • 做一个电商网站南京网站制作公司电话
  • 网站建设作业指导书v5shop微分销系统
  • 关于建设门户网站丹东新区建设发展集团网站
  • 邯郸做wap网站的公司深圳市最新消息
  • 双语版网站怎么做网络营销的基本职能有哪些
  • 深圳网站建设网站运营果盘游戏推广平台
  • 全球最大的设计网站微网站建设加盟
  • 高端网站建设 引擎技网络深圳做网站(官网)
  • 为什么要网站建设a站全称
  • 先申请网站空间vue.js和vs做网站比较
  • wordpress建站系统视频教程wordpress首页轮播
  • 二手书网站建设的意义自己做淘宝优惠券网站
  • 建设的基本流程网站营销推广费用
  • 网站改版重新收录c语言网页编辑器
  • 大庆市住房和城乡建设局网站温州阿里巴巴网站建设
  • 门户网站 建设 通知免费图片素材网站推荐
  • 哪个网站可以上传设计的作品策划对于企业网站建设来说
  • 图书馆建设网站wordpress 插件 上传
  • 网站开发技术服务合同网络营销的概念和定义
  • 企业建站 wordpress网站建设项目验收报告书