ve kendi uygulanmasında birçok FRİKİKLERİNDEN vardır . Klasik şeylerden bazıları, iş parçacığı ve bellek sızıntılarıdır.
İş parçacığı/süreç denetimi basitçe, bir olayı tetiklediğinizde, dinleyicinin ne zaman çağrılacağını - hemen veya daha sonra? Hemen ateş ederseniz, dinleyicinin çağrılmasından hemen sonra değişen bir olaya sürekli tepki veren, gerçekten kötü performans gösteren bir sistemle son bulabilirsin. Burada kolay bir cevap yoktur ve gerçekten ihtiyacınıza göre değişir. Genel olarak, bir etkinliğin ateşlemesini erteleyecekseniz daha iyi performans gösteren bir sisteme sahip olursunuz (çünkü aynı olay için dinleyiciyi birçok kez çağırmaktan kaçınabilir - ya da aynı olaya yol açan olaylar döngüsü)
İkinci büyük hasa, hafıza sızıntısı. Java'daki silmenin olmaması hoş bir şeydir, ancak dinleyiciler ayağınıza bağlanmış dev bir tabancadır. Bir bellek yükü kullanan bir örneğe bağlı bir dinleyiciniz varsa, başka bir nesne bu dinleyiciye bir başvuru içeriyorsa, bu bellek etrafta dolanır. Buna WeakReferences gibi bir sürü çözüm var, ama genel olarak, çok dikkatli olmanız ve uygulamanızı test ederken dinleyicilerin sayısını incelemeniz ve incelemenizden emin olmanız gerekir (liste dışı? :)).
Kısacası, eğer ben olsaydım, şu gibi birçok konuyla birlikte geliştirilen http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/eventbus/package-summary.html http://codingjunkie.net/guava-eventbus/ gibi bir şeyi kullanmayı düşünürdüm.