Ich bin noch neu bei Scala und habe eine Frage zum Paketobjekt.Paketobjekt für Typdefinitionen
Ich habe ein Paket com.pack.age.command
welches folgendes Merkmal umfasst:
trait Command
case object Help extends Command
Nun wäre Ich mag eine Funktion definieren, Befehle zu verarbeiten:
type CommandArgument = scala.Any
type CommandProcessor = Command => CommandArgument => Unit
I neigen dazu, diese Typdefinitionen setzen in ein Paketobjekt.
Der Grund ist, dass diese Typen für alle Befehle gleich sind, so dass es logisch für mich aussieht.
Aber ist es üblich, so in Scala zu tun?
Deklarieren Typ alias für solche Zwecke ist üblich, aber mit 'Any' nicht gut ist. Vielleicht sollten Sie besser einen Typparameter für 'CommandArgument' verwenden, wenn Sie jede Unterklasse' Command' definieren. – Naetmul
Wie @Naetmul sagt Typ 'Any' ist schrecklich. Schaut euch das folgende Geschrei über 'akka' an, das ich in diesem Punkt lehrreich finde: http://stew.vireo.org/posts/I-hate-akka/ – Yaneeve
@Naetmul Eigentlich wollte ich' Option [String] verwenden 'als ein Argument, aber ich wollte allgemeineren Typ zur Verfügung stellen. –