当前位置: 首页 > 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.dt0577.cn/news/55168.html

相关文章:

  • 如何做网站路径分析搜索引擎优化排名品牌
  • 做网站分辨率修改昆明百度搜索排名优化
  • 安卓版下载app手机优化器
  • 如何用自己电脑做销售网站泰安seo公司
  • 网站都是程序员做的吗怎么网站排名seo
  • 安徽柱石建设有限公司网站种子在线资源搜索神器
  • 福田深圳网站建设永久免费客服系统
  • 网站建设素材使用应该注意什么域名注册查询
  • 做宣传网站要多少钱站长工具seo综合查询怎么用
  • 河南新乡市建设银行网站小程序
  • 可信网站认证必须做吧长沙互联网推广公司
  • 自己怎么创建免费网站南阳seo
  • 做网店在素材网站找的图侵权吗关键词拓展工具有哪些
  • ps做网站首页怎么运用起来怎样看网页的友情链接
  • 做ppt的模板网站bt磁力天堂torrentkitty
  • 品划网络做营销型网站超级软文网
  • 嘉兴市南湖区建设街道网站软件开发培训多少钱
  • 列表形式网站会计培训班要多少钱一般要学多久
  • 有什么推荐做简历的网站长沙网站建设公司
  • 贵阳网站开发工作室品牌推广的概念
  • wordpress手机版优化安阳seo
  • 十大必做调查网站网络推广计划书
  • 攀枝花网站建设兼职新网站怎么做推广
  • 企业网站开发步骤百度一对一解答
  • 汕头网站建设只需要800搜索引擎推广的三种方式
  • 颍上县住房和城乡建设局网站新闻媒体发布平台
  • 西安市建设工程信息网平台官网全国分站seo
  • 宝马itms做课网站百度下载安装2021
  • 国外虚拟服务器网站新开传奇网站发布站
  • 标签式网站内容管理互联网推广怎么做