看到迭代器原理的时候。
引自: https://blog.csdn.net/qq_42039281/article/details/80871794
图床链接: https://s1.ax1x.com/2020/05/07/YmIBCT.png
有提供范围的迭代器, [前向 /双向 /随机]
有提供功能的迭代器。 [输入 /输出]
我想把他们结合起来,并且使用 C 语言结构体 管理使用,
如果使用适配器模式,那就肯定会抹杀掉其中一种他们子类之间不一样的特性。
适配器模式:
功能迭代器.适配(范围迭代器);
struct range_iterator{
void *advance; // 保留 共有
void *distance; // 保留 共有
//void *next; // 剔除 forward,bidirectional,random 持有
//void *prev; // 剔除 bidirectional,random 持有
//void *at; // 剔除 random 持有
};
input_iterator.adapt(forward_iterator);
output_iterator.adapt(bidirectional_iterator);
xxx 模式,咱也不知道叫啥,就叫 xxx 吧,伪代码:
范围迭代器.范围方法(范围参数[可选],功能迭代器.功能方法,功能参数);
forward_iterator.next(input_iterator->read, ...);
bidirectional_iterator.prev(input_iterator->read, ...);
random_access_iterator.at(position, output_iterator->write, ...);
那么这个 xxx 叫啥模式啊?
装饰器模式?还是就是适配器模式?还是其他呀?
1
yidinghe 2020-05-08 01:21:56 +08:00 via Android
描述下“结合起来”是什么意思。
|