Scala 从对象应用程序继承,我如何制作类似的东西?
我有3个项目包含在一个项目中,我们称它们为Scala 从对象应用程序继承,我如何制作类似的东西?,scala,Scala,我有3个项目包含在一个项目中,我们称它们为project1、2和3,它们包含在主项目中。1一个是库,而两个其他的是控制台可执行项目 目前,我在项目2和3中有两个几乎相同的对象应用程序: package com.project1 abstract class Class123 extends Actor { ... } abstract class Class456 { ... } package com.project2 class Class123 extends package1.C
project1
、2
和3
,它们包含在主项目中。1
一个是库,而两个
其他的是控制台可执行项目
目前,我在项目2
和3
中有两个几乎相同的对象应用程序
:
package com.project1
abstract class Class123 extends Actor { ... }
abstract class Class456 { ... }
package com.project2
class Class123 extends package1.Class123 { ... }
class Class456 extends package1.Class456 { ... }
object Application extends App {
val system = ActorSystem()
val myActor = system.actorOf(Props[Class123])
val b = new Class456
// some actions
}
package com.project3
class Class123 extends package1.Class123 { ... }
class Class456 extends package1.Class456 { ... }
object Application extends App {
val system = ActorSystem()
val myActor = system.actorOf(Props[Class123])
val b = new Class456
// some actions
}
如何减少重复的次数?我可以在package1
中创建对象应用程序
,但它应该是通用的(Scala不允许这样做),我必须从中继承(Scala也不允许)
我该怎么办?将其作为类而不是对象:
class MyApp[C123, C456] extends App {
val system = ...
val myActor = ...
val b = ...
}
package com.project1
object Application1 extends MyApp[com.project1.Class123, com.project1.Class456] {
...
}
package com.project2
object Application2 extends MyApp[com.project2.Class123, com.project2.Class456] {
...
}
您以前的回答者已经回答过,或者,您可能不知道类可以扩展应用程序(DelayedInit),而您的对象可以扩展该类。