Я хочу построить некоторые классы scala для моделирования RDF. У меня есть классы и свойства. Свойства смешаны с классами и могут использовать hashmap properties
из-за своего типа.Использование большого количества миксинов с самим типом
Поскольку классы получают больше свойств, я должен использовать много микшинов (50+), и мне интересно, насколько это хорошая производительность решения?
trait Property
trait Properties {
val properties =
new scala.collection.mutable.HashMap[String, Property]
}
abstract class AbstractClass extends Properties
trait Property1 {
this: AbstractClass =>
def getProperty1 = properties.get("property1")
}
trait Property100 {
this: AbstractClass =>
def getProperty100 = properties.get("property100")
}
class Class1 extends AbstractClass
with Property1 with Property100
Спасибо, не знали о 'типа Dynamic'. Если я смогу использовать его для своей проблемы, я закрою этот вопрос. – roelio
Я попытался использовать ваше последнее предложение, но потом столкнулся с проблемой типа, см. Мой другой вопрос: http://stackoverflow.com/q/9105791/730277 – roelio
Я просто хотел не объявлять 'trait's вообще - вместо того, чтобы смешивать метод 'getProperty1', просто возьмите значение с вашей карты напрямую –