Birçok şeyde olduğu gibi, doğru yaklaşım, belirli bir düğme için ne yapmaya çalıştığınıza ve etkinlikle başka ne yaptığınıza bağlıdır.
Etkinlik sınıfı arabirimi uygular :
Bu dinleyici çağrıldığında yürütülecek yalnızca bir tür göreviniz olduğunda bu iyi bir seçenektir. Buna bir örnek, birkaç alan ve kaydet düğmesi içeren basit bir form olabilir. Gerçekte ne yapılması gerektiğine karar vermek için olay dinleyicimin olayın kaynağını kontrol etmemeyi tercih ederim. Bazıları bu tarzı bir şey olduğunu söyleyebiliriz biliyorum, ama dinleyici bu kontrolü yapmak için gerek kalmadan tam olarak her olay için ne denir bilecek gibi kodu takip etmek kolaylaştırır inanıyorum.
Farklı bir sınıf arabirimi uygular :
Yukarıda söylediğim gibi, aynı olayı tetikleyebilecek birden fazla öğem olduğunda bu seçeneği tercih ederim. Yukarıdaki örneği genişleterek, bir tıklama dinleyici gerektiren net bir düğme ekleyelim. Kaydetme eylemlerini önceden yapan ve net eylemleri önceden oluşturan bir dinleyici oluşturun. Her dinleyici yalnızca bu eylemi üretecek bileşenlere eklenir.
Bu uygulamanın, eğer önemsiyorsanız kullanabileceğiniz ek bir yararı vardır. Bunun yararı, diğer sınıfların etkinlik sınıfınızın içindeki olayı tetiklemesini engellemesidir. Arabirim yöntemi herkese açık olması gerektiğinden, sınıfa başvuru yapan herkes etkinliği tetikleyebilir. Uygulamada kimin ne yapabileceği üzerinde hassas bir kontrol istiyorsanız, ayrı bir sınıf, etkinliğe referansı olan herkesin formunuzun temizlenmesini veya kaydedilmesini tetiklemesini önler (veya dinleyici kaynağı kullanıyorsa kodu kırabilir, ancak hatalı giriş işlemez).
Anonim bir iç sınıf arabirimi uygular :
Bu, gerçekte uygulama olarak farklı bir sınıf kullanmanın ikinci seçeneğini oluşturmanın özel bir yoludur. Kimse sınıfın bir örneğini oluşturamadığından, bu seçenek olayı kimin tetikleyebileceğini de kısıtlayabilir. Ancak, iki seçenek arasındaki en önemli etken ne kadar iş yapıldığını düşünüyorum. Birkaç metin alanını temizlemek basit ve basit bir işlemdir. Bununla birlikte, for'un kaydedilmesi işlemi, bir dizi görevi içerebilir, girdiyi doğrularsınız (yapmanız gereken), değerleri saklamak için bir veritabanına yazmanız ve bazı kaydetme işlemlerini tetiklemenizdir. Bu durumda, kendi dosyasıyla ayrı bir sınıf oluşturmak, giriş formu ve veri işleme arasında daha net bir ayrım sağlayacaktır. Bu da, içinde birden çok iç sınıf bulunan daha büyük bir dosya yerine form kodunu korur.