programing tip

Scala의 개인 및 보호 생성자

itbloger 2020. 8. 9. 10:09
반응형

Scala의 개인 및 보호 생성자


Scala에 명시적인 기본 생성자가없는 경우의 영향에 대해 궁금했습니다. 클래스 본문의 내용뿐입니다.

특히, 개인 또는 보호 된 생성자 패턴, 즉 컴패니언 객체 나 다른 클래스 또는 객체의 메서드를 통해 생성을 제어하는 ​​것은 분명한 구현이 없을 수 있다고 생각합니다.

내가 잘못? 그렇다면 어떻게 수행됩니까?


다음과 같이 클래스 이름과 매개 변수 목록 사이에 적절한 키워드를 삽입하여 기본 생성자를 private / protected로 선언 할 수 있습니다.

class Foo private () { 
  /* class body goes here... */
}

Aleksander 의 대답은 정확하지만 Scala의 프로그래밍 은 추가 대안을 제공합니다.

sealed trait Foo {
 // interface
}

object Foo {
  def apply(...): Foo = // public constructor

  private class FooImpl(...) extends Foo { ... } // real class
}

참고 URL : https://stackoverflow.com/questions/1730536/private-and-protected-constructor-in-scala

반응형