Ben bir Action
sınıf, böyle bir şey var bir UI kodu üzerinde çalışıyorum -
public class MyAction extends Action {
public MyAction() {
setText("My Action Text");
setToolTip("My Action Tool tip");
setImage("Some Image");
}
}
Bu Action sınıfı oluşturulduğunda, Action
sınıfın özelleştirilemeyeceği varsayılmıştır (bir anlamda - metni, araç ipucu veya görüntüsü kodun hiçbir yerinde değiştirilmeyecektir). Şimdi, kodun bir noktasında eylem metnini değiştirmemiz gerekiyor. Bu nedenle, iş arkadaşımın sabit kodlu eylem metnini kurucudan kaldırmasını ve bağımsız değişken olarak kabul etmesini önerdim, böylece herkes eylem metnini iletmeye zorlanır. Aşağıdaki bu kod gibi bir şey -
public class MyAction extends Action {
public MyAction(String actionText) {
setText(actionText);
setTooltip("My Action tool tip");
setImage("My Image");
}
}
Bununla birlikte, setText()
yöntem temel sınıfa ait olduğu için, eylem metninin oluşturulduğu her yerde eylem metnini geçirmek için esnek bir şekilde kullanılabileceğini düşünmektedir. Bu şekilde, mevcut MyAction
sınıfı değiştirmeye gerek yoktur . Yani kodu böyle bir şey olurdu.
MyAction action = new MyAction(); //this creates action instance with the hardcoded text
action.setText("User required new action text"); //overwrite the existing text.
Bunun sorunla başa çıkmanın doğru yolu olup olmadığından emin değilim. Yukarıda belirtilen durumda kullanıcı yine de metni değiştireceğini düşünüyorum, bu yüzden neden eylem inşa ederken onu zorlamıyor? Orijinal kodla gördüğüm tek fayda, kullanıcının metin ayarlamayı düşünmeden Action sınıfı oluşturabilmesidir.