Я создал акка-актера под названием LogActor. LogActors получает метод, обрабатывающий сообщения от других субъектов и регистрирующий их на указанном уровне журнала.
Я могу различать разные уровни двумя способами. Первый:
import LogLevel._
object LogLevel extends Enumeration {
type LogLevel = Value
val Error, Warning, Info, Debug = Value
}
case class LogMessage(level : LogLevel, msg : String)
Второй: (ИЗМЕНИТЬ)
abstract class LogMessage(msg : String)
case class LogMessageError(msg : String) extends LogMessage(msg)
case class LogMessageWarning(msg : String) extends LogMessage(msg)
case class LogMessageInfo(msg : String) extends LogMessage(msg)
case class LogMessageDebug(msg : String) extends LogMessage(msg)
Какой способ эффективнее? требуется ли меньше времени для сопоставления класса case или для сопоставления значения enum?
(Я прочитал этот вопрос, но нет ответа, относящегося к среде выполнения проблема)
xxxLogMessage
классов case. - person Malte Schwerhoff   schedule 12.11.2012abstract class LogMessage(msg:String); case class ErrorLogMessage(msg:String) extends LogMessage(msg); ...
, но это не спасет вас от повторенияmsg
. Кстати, это правильный способ сделать это, наследование case-классов крайне не рекомендуется. - person pedrofurla   schedule 12.11.2012