Scala中的特征与包
看完
Martin’s keynote on Reflection and Compilers之后我似乎无法从头脑中得到这个疯狂的问题.马丁谈到了“(婚礼)蛋糕模式”,其中特质扮演着核心角色.我想知道,为什么在我们已经有特征时我们需要包装?包装能做什么,特质(至少理论上)不能做什么?
我不是在谈论当前的实现,我只是想象一下,如果我们用特征替换包,那会是什么样的编程.在我脑海里,它会是这样的: >少一个关键字(不需要包) 总结我的所有问题: >理论上可以从语言中删除包并使用特征. 更新 Daniel Spiewak在this keynote谈到依赖注入只是你可以用Cake Pattern做的所有东西的冰山顶. 解决方法
Martin Odersky说Scala可以通过特征,对象,方法和路径来实现(我希望我没有忘记一些事情).
类和包都在那里,因为Scala旨在成为一种托管语言,即运行的语言(这实际上不是有趣的位),并与主机平台(这是重要的点)互操作. Scala旨在与之互操作的一些主机平台是Java平台和CLI,它们都具有类和包的概念(在CLI的情况下为命名空间),这些概念非常明显,不能轻易表达为特征或对象.这与接口不同,接口可以简单地映射到纯粹抽象的特征. 上面的陈述是在讨论可能从Scala中删除泛型的过程中做出的,因为泛型可以做的所有事情也可以通过抽象类型来实现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |