首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala集合转发器和代理的用例

问Scala集合转发器和代理的用例
EN

Stack Overflow用户
提问于 2011-04-21 06:50:42
回答 1查看 570关注 0票数 6

Scala的集合库包含转发器IterableForwarder、TraversableForwarder、SeqForwarder和代理,如IterableProxy、MapProxy、SeqProxy、SetProxy、TraversableProxy等。转发器和代理都将集合方法委托给底层集合对象。这两者之间的主要区别在于,转发器不会转发会创建相同类型的新集合对象的调用。

在哪些情况下,我更喜欢这些类型中的一种?为什么转发器有用?什么时候转发器有用?如果它们是有用的,为什么没有MapForwarder和SetForwarder

我认为,如果想要为具有其他方法的集合构建包装器,或者想要给标准集合拉皮条,那么最常用的就是代理。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-21 15:09:58

我认为this answer总体上提供了一些关于Proxy的上下文(您关于包装器和拉皮条的假设是正确的)。

据我所知,Proxy的子类型更多地面向终端用户。在使用Proxy时,代理对象和self对象在所有目的和目的上都是相同的。我认为这实际上是主要的区别。如果该假设不成立,请不要使用Proxy。

转发器特性似乎只用于支持ListBuffer,如果需要推出构建在CanBuildFrom基础设施之上的自己的集合类,它可能更合适。所以我想说的是,它更多地针对的是库作者,因为库是基于2.8的集合设计的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5737534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档