Scala中的Trait,FunctionN或trait-inheriting-FunctionN?
我在
Scala中有一个特性,它有一个方法.称之为Computable,单个方法是compute(input:Int):Int.我无法弄清楚我是否应该这样做
>使用单一方法将其保留为独立特征. 支持它成为特质的一个因素是我可以有用地添加一些额外的方法.但是,当然如果它们都是根据计算方法实现的,那么我可以将它们分解为一个单独的对象. 支持仅使用函数类型的一个因素是简单性以及匿名函数的语法比匿名Computable实例的语法更简洁.但是,我无法将实际Computable实例的对象与将Int映射到Int的其他函数区分开,但并不打算在与Computable相同的上下文中使用. 其他人如何处理这类问题?这里没有对错的答案;我只是在寻求建议. 解决方法
由于几个原因,创建从函数类型扩展的特征可能很有用.
>您的函数对象执行特殊且非显而易见(并且难以键入)的操作,并且您可以参数化构造函数中的轻微变体.例如,假设您正在编写特征以在XML树上执行XPath查询. apply函数将隐藏构造XPath查询机制的几种工作,但实现Function1接口仍然是值得的,这样你就可以使用map或flatMap从一大堆不同的节点开始查询. 我希望这很清楚. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |