PrototypeZ / AppJoint

🔧 Cross module Android development made easy!
764 stars 120 forks source link

关于Service 初始化的问题 #38

Closed turingking closed 4 years ago

turingking commented 4 years ago
interface Module1Service{
}

interface Module2Service{
}

@ServiceProvider
class Module1ServiceImpl : Module1Service{
   var service = AppJoint.service(Module2Service.class)
}

@ServiceProvider
class Module2ServiceImpl : Module2Service{
    var service = AppJoint.service(Module1Service.class)

}

如此就死循环了~

PrototypeZ commented 4 years ago

目前这个问题确实是有可能存在的,我简单思考了一下,建议还是从设计上避免这种情况出现,例如把接口作为方法的参数传递,或者接口的真正实例的获取在一个公共的位置,所有需要接口实例的都从这个公共位置去获取,等等

turingking commented 4 years ago

@PrototypeZ 另外我发现 @ServiceProvider 注解的类会被多次实例化。这是怎么回事

turingking commented 4 years ago

抱歉,是我的问题,一个ServiceImpl 在初始化的时候出错,由于调用地方多,每一次调用都尝试初始化~