我想要一个如下所示的 ActorFactory 类public class SampleActorFactory { // Simple create method public createActor(AbstractActor.ActorContext actorContext, Props props) { return actorContext.actorOf(props); } // other complex create methods ...}使用上面的工厂类创建一个儿童演员是否可以,或者这被认为是一种不好的做法?如果被认为是不好的做法,那为什么呢?例如:public class SampleActor extends AbstractActor { private final SampleActorFactory sampleActorFactory; @Override public Receive createReceive() { return receiveBuilder() .match(SampleData.class, sampleData -> { Props sampleProps = getSampleProps(...); ActorRef childActor = sampleActorFactory.createActor(getContext(), sampleProps); }) .build(); }}
1 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
我认为这种方法没有任何问题,您应该能够访问 actor 系统之外的上下文。但是......通常要创建一个演员,你只需要如下一行代码。使用您的代码,您必须在创建演员的地方编写两行代码(一行用于道具,另一行用于调用您的 createActor() 方法)。除了实现工厂方法之外,如果您从中获得任何额外的好处,您就可以去做。
ActorRef demoActor = getContext().system().actorOf(Props.create(MyDemoActor.class, prop1, prop2);
添加回答
举报
0/150
提交
取消
