设计模式:bridge模式
2024-08-30 01:43:54
目的:将“类的功能层次结构”和“类的实现层次结构”分类
类的功能层次:通过类的继承添加功能(添加普通函数)
类的实现层次:通过类的继承实现虚函数
理解:和适配器模式中的桥接方法相同
例子:
class DisplayImpl
{
public:
virtual void open() = 0;
virtual void print() = 0;
virtual void close() = 0;
}; class StringDisplayImpl: public DisplayImpl //实现性扩展
{
public:
void open()
{
cout << "open()" << endl;
} void print()
{
cout << "print()" << endl;
} void close()
{
cout << "close()" << endl;
}
};
class Display
{
DisplayImpl* pImpl; //桥接的核心代码
public:
Display(DisplayImpl* pImpl)
{
this->pImpl = pImpl;
} void print()
{
pImpl->open();
pImpl->print();
pImpl->close();
}
}; class MultiDisplay: public Display //功能性扩展
{
public:
MultiDisplay(DisplayImpl* pImpl): Display(pImpl)
{} void multiPrint()
{
for(int i=0; i<5; i++)
{
print();
}
}
};
int main()
{
Display* d = new Display(new StringDisplayImpl());
d->print(); cout << endl; MultiDisplay* md = new MultiDisplay(new StringDisplayImpl());
md->multiPrint(); return 0;
}
最新文章
- Virus.Win32.Virlock.b分析
- mysql开发小结
- 多线程迭代之——LINQ to TaskQuery
- zoj3416 Balanced Number
- jsp配置项目时出错Deployment failure on Tomcat 6.x. Could not copy all resources to
- Mesh系列文章 - 自定义Mesh
- MVC 百度地图的基本使用
- android开发 wifi开发工具类
- POJ 2080
- Linux下SSH各配置项解释
- [liu yanling]软件测试的分类
- 鸭子类型duck typing(动态)
- 九度OJ 1025 最大报销额(01背包)
- Wii硬盘游戏管理
- 关于VFP9.0备注字段(memo)插入编辑问题
- 一步一步学数据结构之1--n(通用树)
- Linux网络编程——连接和面向连接的协议之间没有区别
- Java获取IP
- websevice(Web服务)基础
- cJSON使用