Ejb ve EjbQL JavaFX
May 19

Programlamada sınıfın kendisi yerine onun referansını kullanmak Ripple Effect‘i azaltır. Yani siz sınıfınızı değiştirdiğiniz zaman bu kodu kullandığınız yeri değiştirmenize gerek kalmıyor. Size bu sınıfın yaptığı işlemin belli kısımlarını kullanıcıya sunmaya olanak tanıyor. Örnek vermek gerekirse siz bir interface yazdınız ve bu interface getConnection methodunu içeriyor. Siz bu interface’i implement eden çeşitli sınıflar yazarak farklı databaselere aynı interface üzerinden bağlanabilirsiniz.

Aşağıdaki kodda ise iki farklı GUI elemanımız olduğunu düşünelim. Win ve OSX olsun bunlar. Ben bunlara tek sınıf üzerinden erişmek istediğimde aşağıdaki kodu yazabiliriz.

/*
* GUIFactory example
*/
 
abstract class GUIFactory {
 
    public static GUIFactory getFactory() {
        // Bir dosyadan hangi factory olacağını 
        // okuduğumuzu farzedelim
        int sys = readFromConfigFile("OS_TYPE");
        if (sys == 0) {
            return new WinFactory();
        } else {
            return new OSXFactory();
        }
   }
 
   public abstract Button createButton();
}
 
class WinFactory extends GUIFactory {
    public Button createButton() {
        return new WinButton();
    }
}
 
class OSXFactory extends GUIFactory {
    public Button createButton() {
        return new OSXButton();
    }
}
 
abstract class Button {
    public abstract void paint();
}
 
class WinButton extends Button {
    public void paint() {
       System.out.println("I'm a WinButton: ");
    }
}
 
class OSXButton extends Button {
    public void paint() {
       System.out.println("I'm a OSXButton: ");
    }
}
 
public class Application {
 
    public static void main(String[] args) {
        // Görüldüğü üzere sınıfı kullanan kişi
        // WinFactory ve OSXFactory sınıfları hakkında
        // bilgi bilmesine gerek yok
        GUIFactory factory = GUIFactory.getFactory();
        Button button = factory.createButton();
        button.paint();
    }
}

yazan ekocaman

Cevapla