为了账号安全,请及时绑定邮箱和手机立即绑定

ActorContext(getContext()) 是否可以传递到Actor 外部来创建子

ActorContext(getContext()) 是否可以传递到Actor 外部来创建子

蝴蝶不菲 2022-12-21 10:07:50
我想要一个如下所示的 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);



查看完整回答
反对 回复 2022-12-21
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号