2016-12-15 12 views
1

Akka에 익숙하지 않아서 소품의 장점이 무엇인지 간단하게 이해하는 데 도움이 필요합니다. 일반적인 OO 스타일 객체 생성에 관한 문제는 무엇입니까?소품은 Akka의 배우 창작에 어떤 이점이 있습니까?

내가 알고있는 것은 이것이 당신이 PROP에서 클래스와 프로퍼티를 팩토리로 보내고 당신을 위해 액터를 만드는 팩토리 패턴을 따르는 것입니다. [틀 렸으면 고쳐줘]?

하지만 나는 필요성을 느끼지 못하고 이것이 근본적이라는 것을 알고 있습니다. 이것은 나의 딜레마입니다.

유추/코드로 이해할 수 있습니까?

답변

2

액터를 만드는 방법에는 두 가지 장점이 있습니다.

첫 번째 것은 간단합니다 : Actor 개체가 생성되면 배우 시스템에 제대로 등록되었음을 보증합니다 (부모 액터가 있어야 감독자가 푸시 된 메시지를 가져옵니다).). 따라서 유형이 Actor 인 객체로 끝나지는 않지만 실제로는 액터 시스템 외부에 존재합니다.

두번째는 actorOf(props: Props): ActorRef있어서의 정의에서 볼 수있다 : 그것은 실제로 Actor를 리턴하지 않지만, 오히려 ActorRef (및 ActorRef 어느 기본 Actor에 대한 참조를 제공하지 않음).

즉, 액터 자체에 직접 액세스 할 수 없으므로 비동기 메시지를 보내는 대신 액터에서 직접 메서드를 호출하여 Akka API를 우회 할 수 없습니다. Actor을 직접 제작 한 경우 배우에게 직접 액세스 할 수 있으므로 배우 모델의 보증을 위반하는 방식으로 액세스하기가 너무 쉽습니다.

-1

나는 어떤 이점도 있다고 생각하지 않는다. 실제로 API를 이해하는 것은 유익합니다.

왜이 마음에 들지 :

ActorRef actorA = system.getRefByCreateActor(ActorA.class, Props.create(......)); 

NoSender.tell(actorA, message);