2
我使用这样几类避免明确的代表团:使用implicits何时实现特质
class MyClassOne {
doSomething(a : A) : B
...
}
class MyClassTwo {
doSomething(a : A) : B
...
}
源的类是不是我的控制之下。虽然这些类具有相同签名的方法,但它们不实现接口。我想定义适用于所有类的方法。
所以我做了一个特质是这样的:
trait MyTrait {
doSomething(a : A) : B
}
并对所有的类做隐式转换:
implicit class MyClassOneMyTrait(myClassOne : MyClassOne) {
def doSomething(a : A) = myClassOne.doSomething(a)
}
有没有办法利用所使用的命名约定在类中,并避免显式委托给传递给构造函数的对象?更一般地说,使用带隐式类的Trait是解决这个问题的最佳方法?
如果您想要避免反射的性能损失,您的第二选择是什么? – mushroom
@mushroom使用[Adapter](https://en.wikipedia.org/wiki/Adapter_pattern)设计模式。实际上,你原来的方法是实现它的一种方法。 – Aivean