[英]What are the benefits of Akka extensions?
我對Akka還是很陌生,並試圖了解如何處理依賴項注入。 我碰到了這個樣例 ,將我帶到了Akka擴展,現在我試圖了解它與簡單的靜態方法調用有何不同。 關於擴展的Akka教程部分中的示例如下:
public class CountExtensionImpl implements Extension {
private final AtomicLong counter = new AtomicLong(0);
public long increment() {
return counter.incrementAndGet();
}
}
public class CountExtension extends AbstractExtensionId<CountExtensionImpl> implements ExtensionIdProvider {
public static final CountExtension EXTENSION = new CountExtension();
private CountExtension() {
}
@Override
public CountExtensionImpl createExtension(ExtendedActorSystem system) {
return new CountExtensionImpl();
}
@Override
public ExtensionId<? extends Extension> lookup() {
return EXTENSION;
}
}
public class MyActor extends UntypedActor{
@Override
public void onReceive(Object message) throws Exception {
System.out.println(CountExtension.EXTENSION.get(getContext().system()).increment());
}
}
但是我不明白簡單單例或靜態方法的優點是什么? 例如
public class MyActor extends UntypedActor{
@Override
public void onReceive(Object message) throws Exception {
Counter.increment();
}
}
Akka擴展綁定到ActorSystem,因此是每個系統一個單例,而不是全局單個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.