Fre*_*ind 2 scala class traits
我很困惑地选择一个trait或者class在编写scala代码时.
起初,我有一个控制器,有with几个特点:
class MyController extends Controller
with TransactionSupport
with JsonConverterSupport
with LoggerSupport
Run Code Online (Sandbox Code Playgroud)
在这些特征中,我定义了一些可以直接使用的方法和字段MyController.
但我的朋友说:当你extends或with一个特质时,应该be a是那种特质.
看看MyController它,它是一个Controller,但它不是一个TransactionSupport,不是一个JsonConverterSupport,不是一个LoggerSupport,所以它不应该是with它们.
所以代码变成:
class MyController(tranSupport: TransactionSupport,
jsonConverter: JsonConverterSupport,
loggerSupport: LoggerSupport) extends Controller
Run Code Online (Sandbox Code Playgroud)
但我对这段代码感觉不太好,这看起来很奇怪.
我看到traits在scala代码中大量使用,我什么时候应该使用它或使用类注入?