谈谈对容器适配器的理解
来源:互联网 发布:acrobat xi注册机 mac 编辑:程序博客网 时间:2024/04/29 02:08
对于容器适配器,它和顺序容器到底有什么区别?看了一晚上的书,似懂非懂,后来理清了一下思路:
适配器:adapter,其原意是插座,适配器,接合器的意思。假如说现在在编写程序中需要一个栈结构,可以用deque来模拟,然而deque
毕竟不能直接作为一个stack,它并不能直接严格满足要求,因为我们不能防止别人在另一端乱动我的东西,(因为deque是一种顺序容器,其为双端队列)
然而我们所需要的栈结构是一种顺序容器适配器,该队列保证只在队尾插入新元素,而且只能在队首删除元素。那这个
时候我们需要对它进行一些包装,作出一定的限制以满足我们所需要的栈结构的要求。我们使之只能
在一端进行插入和删除。也就是说我必须提供一个"插座",这个“插座”一端插在deque上,另一端插在我的程序中,那么
现在我就可以使用栈结构了。而stack就是这个的“插座”,它连接了deque和我的程序。表面上看我使用的是stack,
实际上我是通过stack这个“插座”来使用deque(因为stack完全是用deque来实现的,但是它并没有任何其他的东西,它只是在的确上面
作了一层包装,相当于一个“插座”的功能)。因此,stack,queue,priority_queue这样的类一般称为容器适配器,他们只是基本
容器类型(vector,dequeue,list)的适配
实际上,这也是适配器模式的基本思想:将一个类的接口转换为客户希望的另一个接口。Adapter模式使得
原本由于接口不兼容而不能一起工作的那些类可以一起工作。也就是说,在一个类的接口上提供一个“插座”类,使它变成我希望使用的接口。
0 0
- 谈谈对容器适配器的理解
- 容器适配器的理解(转)
- 谈谈对后台的理解
- 谈谈对jnlp的理解
- 谈谈对Handler 的理解
- 谈谈对BPM的理解
- 谈谈对margin的理解
- 谈谈对Hibernate的理解
- 谈谈对hibernate的理解
- 谈谈对hibernate的理解
- 谈谈对Spring的理解
- 谈谈对MVC的理解
- 谈谈对MVC的理解
- 谈谈对android的理解
- 谈谈对HandlerThread的理解
- 谈谈对spring的理解
- 谈谈对hibernate的理解
- 谈谈对Spring的理解
- 多服务器数据同步问题
- Python管理Windows进程
- 大数据量报表系统的改进方案
- TCP服务端和客户端测试
- CSS学习笔记:语法与规则
- 谈谈对容器适配器的理解
- varargin 的用法
- Linux进程间通信——使用共享内存
- 应用日志记录规范
- Spring MVC @Transactional注解方式事务失效的解决办法
- (16)二维图形复合变换
- 201622017
- javascript:document对象
- Android 使用自定义UncaughtExceptionHandler捕获异常