나는 내 설정 파일로 사용 내 프로젝트의 특성, 그런 일이 : 모두이 특성은 extends
와 함께 사용스칼라 : 사용자 입력에 따라 특성에 발을 초기화
trait config {
val people = Seq("John","Jessie")
}
를) 내 물건 (주요 것을 제외하고). 내가하고 싶은 어떤 사용자로부터 내 main
기능에받은 args
에 따라 people
에 다른 값을 할당하는 것입니다, 그래서 내가 뭔가해야합니다 :
trait config {
val people = args.head match {
case "A" => Seq("John","Jessie")
case "B" => Seq("Bill","James","Brad")
case _ => Seq("Jimmy")
}}
이 할 수있는 방법이 있나요를?
trait config {
app: App =>
lazy val people = args.head match {
case "A" => Seq("John","Jessie")
case "B" => Seq("Bill","James","Brad")
case _ => Seq("Jimmy")
}
}
object Main extends App with config {
people.mkString
}
또는 당신은 응용 프로그램이 아닌 다른 종류의 작동하도록 형질을 줄일 수 있습니다 : 당신이 물어 무엇
이 구성 유형의 데이터에 가장 적합한 패턴 않을보십시오 할 수있는 시스템 전체 설정을 제공합니다. 원하는 설정 데이터가 포함 된 특성을 가질 수 있지만 모든 특성 데이터를 포함시켜 모든 개체에 채워야합니다. 당신이 특성을 정의하기를 원하는 것처럼 들릴지 모르겠다. 그래서 그것을 채울 필요없이 확장 할 수는 있지만 불가능하다. 그러나 당신이 할 수 있다면 데이터가 공유되지 않기 때문에 나쁜 생각이 될 것입니다. 비효율적 인 개체를 확장하는 각 개체의 실제 개체가 다를 수 있습니다. 나는 Dependency Injection을 연구 할 것이다. –
죄송 합니다만,이 편집기를 사용하는 것이 좋지 않으므로 실수로 내 의견이 커밋되기 전에 커밋했습니다. 새줄이 너무 힘들었다는 것을 누가 알았습니까? :) –
다음 모든 필수 개체 및 클래스에 모든 구성 매개 변수를 주입하는 좋은 방법은 무엇입니까? – shakedzy