Angenommen, ich habe eine trait
in ScalaScala Namenskonvention für Züge
trait Connection {
def init(name: String)
def dispose
}
Und ich will, um eine Klasse erstellen, die es implementiert. Aber ich will es als Connection
nennen auch:
class Connection extends Connection {
// ....
}
Es ist nicht zur Arbeit gehen. Natürlich könnte ich trait
etwas anders benennen, aber es stellte sich heraus, dass die Namenskonvention in Scala besagt, dass ich Merkmals als normale Klassen bezeichnen sollte, dh ohne Präfix, das ich in C# verwenden würde (IConnection
wo IConnection
wäre das interface
) .
Und in diesem speziellen Fall ist der Name Connection
für die class
und die trait
besser geeignet.
Oder habe ich etwas in der Namenskonvention von Scala vermisst?
Ich denke, Option 1 ist in der Praxis am häufigsten. Option 2 ist verwirrend, wenn Sie Code lesen. – monkjack
@monkjack Das ist richtig; Es mag sich anfühlen, die gleichen Informationen zu wiederholen, aber andererseits können Sie nicht erwarten, dass alle Entwickler den gesamten Paketkontext aller Typen im Kopf haben. – AlexG