Bir uygulama üzerinde çalışıyorum ve bir tasarım yaklaşımı instanceof
operatörün aşırı derecede ağır kullanımını içeriyor . OO tasarımının genellikle kullanmaktan kaçınmaya çalıştığını bilsem de instanceof
, bu farklı bir hikaye ve bu soru tamamen performansla ilgilidir. Performans etkisi olup olmadığını merak ediyordum? O kadar hızlı ==
mı?
Örneğin, 10 alt sınıflı bir temel sınıfım var. Temel sınıfı alan tek bir işlevde, sınıfın alt sınıfın bir örneği olup olmadığını denetler ve bazı rutin yürütürüm.
Bunu çözmeyi düşündüğüm diğer yollardan biri, bunun yerine "type id" tamsayı ilkelini kullanmak ve alt sınıfların kategorilerini temsil etmek için bir bitmask kullanmak ve sonra yalnızca "type id" alt sınıflarının biraz maske karşılaştırması yapmaktı. kategoriyi temsil eden sabit maske.
Bir instanceof
şekilde JVM tarafından bundan daha hızlı olacak şekilde optimize edilmiş mi? Java'ya bağlı kalmak istiyorum ancak uygulamanın performansı kritik. Daha önce bu yolda olan birinin bazı tavsiyelerde bulunabilmesi harika olurdu. Çok fazla nitelendiriyorum veya optimize etmek için yanlış şeye mi odaklanıyorum?