作者cole945 (躂躂..)
看板C_and_CPP
标题Re: [问题] Adapter
时间Fri Jul 7 23:41:46 2006
※ 引述《snaiko ()》之铭言:
: 请问Adapter 功能为何?
据 `那本' Design Pattern 的解释是..
Convert the interface of a class into another interface clients
expect. Adapter lets classes work together that couldn't otherwise
because of incompatible interfaces.
他说要目地是用来桥接两个因介面不同而无法互动的类别..
让他们得以互相合作~
比如说..你的client期望的是 enqueu(v), dequeu()
可是你的 list 只有 insert(i,v), remove(i)
所以你利用一个 queue adapter
实现list所缺少的 enqueu()和dequeu()
那麽你的client就可以把list当queue一样操作了..
呃..不过..其实应该一开始就会设计好相关的介面..
不然也没办法这样玩..||
像STL的container(stack,queue等)就是用这个概念做的..
template <class T, class Sequence = deque<T> >
class queue {
....
}
两着的差别举例如下..
加减看看吧...大略是这个意思 orz
: Class Adapter
用inheritance来作..
以上面的例子...
class Q: list {
dequeue() {return remove(0);}
enqueue(v) {insert(size(), v);}
}
: Object Adapter
用delegation来作..
class Q {
list l;
dequeue() {return l.remove(0);}
enqueue(v) {insert(l.size(), v); }
}
: 两者之间的差别为何?
: 可否有相关资料可查??
: 查了一下google还是很模糊...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.145.34