#scala #aop #traits
#scala #aop #Трейты
Вопрос:
У меня есть признак
trait Trait {
def method()
}
и некоторые реализации
class A extends Trait {
def method() = println("A")
}
class B extends Trait {
def method() = println("B")
}
class C extends Trait {
def method() = println("C")
}
Моя цель — добавить другой метод (скажем, ведение журнала) в признак (не реализации), который будет вызван непосредственно перед method
. Какой рекомендуемый способ добиться этого?
Ответ №1:
Что-то вроде этого?
trait Trait {
def innerMethod()
def logging()
def method = {
logging
innerMethod
}
}
class A extends Trait {
def innerMethod() = println("A")
}
class B extends Trait {
def innerMethod() = println("B")
}