2 Eylül 2017 Cumartesi

Facade (Cephe) Design Pattern

TDK'ya göre cephe : Bir şeyin veya yapının ön tarafta bulunan bölümü Facade design pattern alt sistemlerden oluşmuş bir sistemde kullanıcının (client)'ın bu alt sistemleri bilmeden herbirini yalnız başına veya ortak olarak kullanabileceği arayüzü sağlar. Bir örnekle açıklayalım. Bir bilgisayar ram, hdd, cpu gibi alt sistemlerden oluşur. Bir bilgisayarı başlattığımız zaman bu alt sistemleri harekete geçirirp belli işlemleri yerine getirmesini bekleriz. Fakat kullanıcı bu alt sistemleri tek tek harekete geçirmek yerine kasada var olan start tuşuyla bu alt sistemlerin sırasıyla hepsinin harekete geçmesini bekler. Client bunların sırasını ve neler yaptığını pek bilmek istemez. Burada kasa'ya facade sınıfı diyebiliriz. Kod olarak gösterecek olursak.




/* Facade */

class ComputerFacade {
    private CPU processor;
    private Memory ram;
    private HardDrive hd;

    public ComputerFacade() {
        this.processor = new CPU();
        this.ram = new Memory();
        this.hd = new HardDrive();
    }

    public void start() {
        processor.freeze();
        ram.load(BOOT_ADDRESS, hd.read(BOOT_SECTOR, SECTOR_SIZE));
        processor.jump(BOOT_ADDRESS);
        processor.execute();
    }
}

/* Client */

class You {
    public static void main(String[] args) {
        ComputerFacade computer = new ComputerFacade();
        computer.start();
    }
}
Alt sistemler kendi başlarına sırayla çalışabildiği gibi, birbirleri ile etkileşim halinde olup belli işleri yerine de getirebilirler.

0 yorum: