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

wordpress怎么仿站广州北京网站建设公司哪家好

wordpress怎么仿站,广州北京网站建设公司哪家好,网站文案编辑怎么做,企业网站设计合同桥接模式(Bridge Pattern)是一种结构型设计模式,它主要是用于将抽象部分与实现部分分离,使它们可以独立地变化。 桥接模式主要包含以下几个角色: Abstraction(抽象类):定义抽象类的…

桥接模式(Bridge Pattern)是一种结构型设计模式,它主要是用于将抽象部分与实现部分分离,使它们可以独立地变化。

桥接模式主要包含以下几个角色:

  1. Abstraction(抽象类):定义抽象类的接口,它维护对Implementor的引用。
  2. RefinedAbstraction(扩充抽象类):扩充由Abstraction定义的接口。
  3. Implementor(实现类接口):定义实现类的接口,该接口不一定要与Abstraction的接口完全一致,事实上这两个接口可以完全不同。
  4. ConcreteImplementor(具体实现类):具体实现Implementor接口,在不同的ConcreteImplementor中提供基本操作的不同实现。

桥接模式的主要优点是:

  • 分离抽象接口及其实现部分:提供抽象和实现之间的桥梁结构,而这个桥梁就是该模式的核心——抽象和实现分离,这也是桥接模式的主要特点。
  • 提高了系统的可扩充性:抽象和实现可以独立扩展,不会相互影响,由于程序的抽象化,增加系统功能方便。
  • 实现细节对客户透明,可以对用户隐藏实现细节。

桥接模式适用于以下场景:

  • 当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。
  • 当一个系统不希望使用继承或因为多层继承导致系统类的个数急剧增加时。
  • 当一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性时。

以下是一个简单的C++实现的桥接模式(Bridge Pattern)示例:

#include <iostream>// 实现部分的抽象
class Implementor {
public:virtual void operationImpl() = 0;virtual ~Implementor() {}
};// 具体实现A
class ConcreteImplementorA : public Implementor {
public:void operationImpl() override {std::cout << "Concrete Implementor A operation..." << std::endl;}
};// 具体实现B
class ConcreteImplementorB : public Implementor {
public:void operationImpl() override {std::cout << "Concrete Implementor B operation..." << std::endl;}
};// 抽象部分
class Abstraction {
public:Abstraction(Implementor* impl) : impl_(impl) {}virtual void operation() {impl_->operationImpl();}virtual ~Abstraction() { delete impl_; }private:Implementor* impl_;
};// 扩展抽象部分
class RefinedAbstraction : public Abstraction {
public:RefinedAbstraction(Implementor* impl) : Abstraction(impl) {}void operation() override {std::cout << "Refined ";Abstraction::operation();}
};int main() {Abstraction* abstractionA = new RefinedAbstraction(new ConcreteImplementorA());abstractionA->operation();Abstraction* abstractionB = new RefinedAbstraction(new ConcreteImplementorB());abstractionB->operation();delete abstractionA;delete abstractionB;return 0;
}

在这个例子中,Implementor是实现部分的抽象,定义了operationImpl接口。ConcreteImplementorA和ConcreteImplementorB是具体实现,实现了operationImpl接口。
Abstraction是抽象部分,它维护了一个对实现部分的引用,这个引用可以是抽象实现类,也可以是具体实现类。在operation接口中,抽象部分会调用实现部分的operationImpl接口。
RefinedAbstraction是扩展抽象部分,它继承了抽象部分,并可以添加新的接口。
通过这种方式,我们可以将抽象部分和实现部分分离,使它们可以独立地变化。

帮助理解:
可以使用”毛笔“ 与 ”蜡笔“ 做比喻。
”大小“和”颜色“ 是两个独立变化的维度。
例如,大小型号有 小 中 大,颜色有3种 红 蓝 黄。
对于毛笔,自带大小属性,增加一支毛笔,结合颜色,有多少种颜色,就有多少种画笔使用方式。
对于蜡笔,大小和颜色耦合在一起,要想达到与毛笔一样的效果,有多少种颜色,就需要增加多少个蜡笔。

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

相关文章:

  • 南昌公司网站建设公司合肥比较好的网站制作
  • 网站的交互设计有什么建筑设计怎么学
  • 无锡网站建设方案服务公众号怎么开通原创
  • 徐州网站建设模板金融软件开发公司排名
  • node做网站后台阿里云配置网站
  • 学校网站意义广州网站建设报价单
  • 广州开发网站哪家专业苏州城乡建设网站
  • php企业网站源码广州网站开发广州亦客网络
  • 网站的登录界面怎么做个人简历(电子版)
  • 网站管理建设莱芜搜狗推广哪家好
  • 山东建设厅网站扫黑wordpress敏感文件
  • 行业网站建设的书南昌门户网站
  • 网站建设的技术要求淘宝客网站一定要备案吗
  • 邢台wap网站建设价格视频网站建设要多少钱
  • 网站怎样做交友征婚婚恋网站系统php+mysql.rar
  • 支付宝网站开发流程做pc端网站新闻
  • 福建百益建设集团有限公司网站医疗设计网站
  • 辽宁建设网站首页阎良网站建设公司
  • 一个网站的渠道网络建设html基础知识思维导图
  • 广州市住房城乡建设部门户网站百度资讯指数
  • 云南昆明网站建设快速优化手把手教网站建设
  • 国家外管局网站怎么做收汇学网站开发要下载哪些软件
  • python网站建设代码江苏省水建公司官网
  • 做网站推荐行业门户网站模板下载
  • 超变传奇网站大红门网站建设
  • 青岛工程建设管理信息网站下载网站数据分析平台
  • 网站在线服务浙江做网站平台的科技公司
  • 网站建设与运营 教材 崔河南网站开发
  • 国外有哪些设计网站推荐网站建设培训总结
  • 个人站长网站网页图片不能正常显示的原因