谈谈对容器适配器的理解
2016-12-31 21:46
141 查看
对于容器适配器,它和顺序容器到底有什么区别?看了一晚上的书,似懂非懂,后来理清了一下思路:
适配器:adapter,其原意是插座,适配器,接合器的意思。假如说现在在编写程序中需要一个栈结构,可以用deque来模拟,然而deque
毕竟不能直接作为一个stack,它并不能直接严格满足要求,因为我们不能防止别人在另一端乱动我的东西,(因为deque是一种顺序容器,其为双端队列)
然而我们所需要的栈结构是一种顺序容器适配器,该队列保证只在队尾插入新元素,而且只能在队首删除元素。那这个
时候我们需要对它进行一些包装,作出一定的限制以满足我们所需要的栈结构的要求。我们使之只能
在一端进行插入和删除。也就是说我必须提供一个"插座",这个“插座”一端插在deque上,另一端插在我的程序中,那么
现在我就可以使用栈结构了。而stack就是这个的“插座”,它连接了deque和我的程序。表面上看我使用的是stack,
实际上我是通过stack这个“插座”来使用deque(因为stack完全是用deque来实现的,但是它并没有任何其他的东西,它只是在的确上面
作了一层包装,相当于一个“插座”的功能)。因此,stack,queue,priority_queue这样的类一般称为容器适配器,他们只是基本
容器类型(vector,dequeue,list)的适配
实际上,这也是适配器模式的基本思想:将一个类的接口转换为客户希望的另一个接口。Adapter模式使得
原本由于接口不兼容而不能一起工作的那些类可以一起工作。也就是说,在一个类的接口上提供一个“插座”类,使它变成我希望使用的接口。
适配器:adapter,其原意是插座,适配器,接合器的意思。假如说现在在编写程序中需要一个栈结构,可以用deque来模拟,然而deque
毕竟不能直接作为一个stack,它并不能直接严格满足要求,因为我们不能防止别人在另一端乱动我的东西,(因为deque是一种顺序容器,其为双端队列)
然而我们所需要的栈结构是一种顺序容器适配器,该队列保证只在队尾插入新元素,而且只能在队首删除元素。那这个
时候我们需要对它进行一些包装,作出一定的限制以满足我们所需要的栈结构的要求。我们使之只能
在一端进行插入和删除。也就是说我必须提供一个"插座",这个“插座”一端插在deque上,另一端插在我的程序中,那么
现在我就可以使用栈结构了。而stack就是这个的“插座”,它连接了deque和我的程序。表面上看我使用的是stack,
实际上我是通过stack这个“插座”来使用deque(因为stack完全是用deque来实现的,但是它并没有任何其他的东西,它只是在的确上面
作了一层包装,相当于一个“插座”的功能)。因此,stack,queue,priority_queue这样的类一般称为容器适配器,他们只是基本
容器类型(vector,dequeue,list)的适配
实际上,这也是适配器模式的基本思想:将一个类的接口转换为客户希望的另一个接口。Adapter模式使得
原本由于接口不兼容而不能一起工作的那些类可以一起工作。也就是说,在一个类的接口上提供一个“插座”类,使它变成我希望使用的接口。
相关文章推荐
- C++中如何理解容器适配器
- C++容器适配器的理解与使用
- 容器适配器的理解(转)
- 第十章 Scala 容器基础(六):理解定义一个变量指向一个不可变集合
- STL-set 容器以及迭代器的简单理解
- STL的6大组件:容器、类属算法、迭代器、函数对象、适配器、分配器。
- 【转】谈谈我对对讲机(Walkie Talkie)电路的理解
- 快速理解Docker - 容器级虚拟化解决方案
- 谈谈对Java中Unicode、编码的理解
- 谈谈我对软件工程的理解和对它的问题
- STL之容器适配器:stack,queue , priority_queue
- 谈谈对方法模板设计模式的理解
- 【转】深入理解DIP、IoC、DI以及IoC容器
- STL之顺序容器适配器(栈的链表实现代码)
- 容器适配器
- 简单谈谈我对JVM内存管理的理解(2)
- 深入理解DIP、IoC、DI以及IoC容器
- 谈谈我对Linux下“生产者/消费者线程模型”的理解
- 【转】谈谈我对服务熔断、服务降级的理解
- 谈谈对于企业级系统架构的理解