동물의 색깔을 한 번 지정하고 싶습니다. 동일한 동물의 모든 동물에 대해 동일합니다. 하는 수 없습니다 나는 이미 규칙을 가지고,추상 객체 값 및 메소드를 스칼라로 어떻게 선언합니까?
object Dog extends Animal {val color = "green"}
이이 객체로 할 필요가
개별 동물의 색상을
abstract object Animal {val color: String}
를 그리고 지정
그래서 내가 할 싶습니다 동물 객체에서 선언 된 팩토리 메소드로 동물을 만들 때만 변경되었으며 팩토리 메소드는 색상에 액세스해야합니다. 예 :
abstract object Animal {
val color: String
def makeAnimal(args): Animal = ...
}
"클래스 만 선언되었지만 정의되지 않은 멤버가있을 수 있습니다"라는 점을 감안할 때 실제로 스칼라에서 어떻게 처리합니까?
특성을 사용하여이를 수행하는 해킹 방법을 생각할 수 있지만 더 나은 것이 있다고 기대하고 있습니다.
[편집] 그래서 복잡한 특성 때문에 값/방법을 유지하는 데 특성을 사용할 수 없습니다. 현재 솔루션은 특성을 사용하여 자식 개체를 부모 개체에 정적으로 등록하는 작업을 포함하며 개체에서 정의해야하는 특성이 아닌 값과 메서드에 액세스 할 수있게 해줍니다. 나는 여전히 더 나은 해결책을 원하고 있습니다.