"Enter"a basıp içeriğe geçin

Builder Design Pattern

Builder Design Pattern: Karmaşık nesnelerin adım adım oluşturulmasını sağlar. Nesne oluşturma süreci, adım adım yönlendirilir ve nesne oluşturmayı karmaşık bir yapıdan ayırır. Builder design patterni, nesnelerin farklı bileşenlerinin aynı oluşturulma sürecini kullanarak farklı nesne varyasyonlarını oluşturmak için kullanışlıdır.

Örnek verecek olursak; bir bilgisayar nesnesi oluşturmak için Builder Design Patternini kullanalım. Bilgisayar classında, işlemci, RAM, depolama alanı gibi oluşturacak şekilde tasarlayalım.

public class Computer {

    private String processor;
    private Integer ram;
    private Integer storage;

    public void setProcessor(String processor) {
        this.processor = processor;
    }

    public void setRam(Integer ram) {
        this.ram = ram;
    }

    public void setStorage(Integer storage) {
        this.storage = storage;
    }

    public void show() {
        System.out.println("Processor: " + processor);
        System.out.println("RAM: " + ram + " GB");
        System.out.println("Storage : " + storage + " GB SSD");
    }
}

public interface ComputerBuilder {
    void buildProcessor();
    void buildRam();
    void buildStorage();
    Computer getResult();
}


public class DesktopBuilder implements ComputerBuilder {

    private Computer computer;

    public DesktopBuilder() {
        computer = new Computer();
    }

    @Override
    public void buildProcessor() {
        computer.setProcessor("Intel Core i7");
    }

    @Override
    public void buildRam() {
        computer.setRam(16);
    }

    @Override
    public void buildStorage() {
        computer.setStorage(512);
    }

    @Override
    public Computer getResult() {
        return computer;
    }
}


public class ComputerAssembler {

    private ComputerBuilder builder;
    public ComputerAssembler(ComputerBuilder builder) {
        this.builder = builder;
    }

    public void assembleComputer() {
        builder.buildProcessor();
        builder.buildRam();
        builder.buildStorage();
    }
}

    public static void main(String[] args) {
        // Builder Design Pattern
        builderDesignPatter();
    }

     private static void builderDesignPatter() {
        ComputerBuilder desktopBuilder = new DesktopBuilder();
        ComputerAssembler assembler = new ComputerAssembler(desktopBuilder);
        assembler.assembleComputer();

        Computer desktop = desktopBuilder.getResult();
        desktop.show();
    }

Bu örnekte, Computer sınıfı, oluşturulacak bilgisayar nesnesini temsil etmektedir.. ComputerBuilder arayüzü, bu nesnenin parçalarını oluşturmak için methodları tanımladık. DesktopBuilder sınıfı, masaüstü parçalarını oluşturan somut bir builder sınıfıdır. ComputerAssembler sınıfı, builder nesnesini kullanarak bilgisayar nesnesinin nasıl oluşturulacağını gösterir. Main classında, builder design pattern kullanarak bir masaüstü bilgisayar oluşturup, sonuç gösteriyor. Bu örnek, builder design patternin karmaşık nesnelerin oluşturulması için nasıl kullanılabileceğini göstermiş olduk.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir