c++ 结构型模式-桥接(Bridge)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c++ 结构型模式-桥接(Bridge),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1711字,纯文字阅读大概需要3分钟。
内容图文
![c++ 结构型模式-桥接(Bridge)](/upload/InfoBanner/zyjiaocheng/645/bb042a52d5c541018a68751886fce1ad.jpg)
1) 意图:
将实现和抽象分离,是它们可以独立的变化
2) 结构:
其中:
a. Abstraction定义对外的接口
b. Implementor定义实现类的接口,是Abstraction的成员指针
c. ConcreteImplementor实现Implementor的具体实现
3) 适用性:
- 不希望抽象和它的实现部分有固定的绑定关系
- 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充
- 对一个抽象的实现部分的修改对客户不产生影响
- 隐藏抽象的实现部分
- 有许多类要生成的类层次结构
- 想在多个对象间共享实现,但同时要求客户并不知道这点
4) 举例:
1 #include <iostream> 2 class Implementor 3 { 4 public: 5 Implementor() {} 6 virtual ~Implementor() {} 7 virtual void OperationImp() = 0; 8 }; 9 class ConcreteImplementorA : public Implementor 10 { 11 public: 12 virtual void OperationImp() 13 { 14 std::cout << "print by ConcreteImplementorA" << std::endl; 15 } 16 }; 17 class ConcreteImplementorB : public Implementor 18 { 19 public: 20 virtual void OperationImp() 21 { 22 std::cout << "print by ConcreteImplementorB" << std::endl; 23 } 24 }; 25 class Abstraction 26 { 27 public: 28 Abstraction(Implementor* imp):m_Imp(imp) {} 29 virtual ~Abstraction() {} 30 void Operation() 31 { 32 if (m_Imp) 33 { 34 m_Imp->OperationImp(); 35 } 36 } 37 private: 38 Implementor* m_Imp; 39 }; 40 41 int main() 42 { 43 Implementor* imp1 = new ConcreteImplementorA(); 44 Abstraction* abs1 = new Abstraction(imp1); 45 abs1->Operation(); 46 47 Implementor* imp2 = new ConcreteImplementorB(); 48 Abstraction* abs2 = new Abstraction(imp2); 49 abs2->Operation(); 50 51 delete imp1; 52 delete abs1; 53 delete imp2; 54 delete abs2; 55 system("pause"); 56 }
内容总结
以上是互联网集市为您收集整理的c++ 结构型模式-桥接(Bridge)全部内容,希望文章能够帮你解决c++ 结构型模式-桥接(Bridge)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】