TASARIM KALIPLARI SERİSİ -2 BRIDGE

    Tasarım kalıpları serimizin bu yazısında Bridge tasarım kalıbını inceleyeceğiz. Bridge tasarım kalıbı kodlama yapımızı daha esneterek bakım ve geliştirmeyi kolaylaştırır. Dilerseniz örnekleyip anlatalım.

 Üretim için interface tanımlıyoruz;

  public interface Uretici {

     public void uretOtomobil();
 
  }


  Burada genel bir üretici tanımladık şimdi bu interface i implement eden iki sınıf yazalım.


  public class Uretici1 implements Uretici {

   private Fabrika1 fabrika = new Fabrika1();

 
   public void uretOtomobil(){
 
            fabrika.uretHatchbackOtomobil();

         }

  }

   public class Uretici2 implements Uretici {

   private Fabrika2 fabrika = new Fabrika2();

 
   public void uretOtomobil(){
 
            fabrika.uretSedanOtomobil();

         }

  }

Bu şekilde iki Üreteci oluşturduk ve iki ayrı fabrika ile farklı işlevler kazandırdık. Şimdi fabrikalarımızı yazalım.


public class Fabrika1 {

   public void uretHatchbackOtomobil(){
   
     System.out.println("Hatchback otomobil üretildi.");
   
   }
}

public class Fabrika2 {

   public void uretSedanOtomobil(){
   
     System.out.println("Sedan otomobil üretildi.");
   
   }
}


Fabrikalar da  hazır. Sıra geldi Bridge kuracağımız nesne yapılarını oluşturmaya yani Otomobil yapılarını...

public abstract class Otomobil {

   public Uretici uretici;

   public Otomobil (Uretici uretici){
          this.uretici = uretici;
   }
   
   public Uretici getUretici(){
   
        return uretici;
   
   }

   public void setUretici(Uretici uretici)
  {

       this.uretici = uretici;

  } 

}



public class SedanOtomobil extends Otomobil {


 public SedanOtomobil(Uretici uretici)
{
    super(uretici);
}

public void uretOtomobil(){

   getUretici().uretOtomobil();


}



}



public class HatchbackOtomobil extends Otomobil {


 public HatchbackOtomobil (Uretici uretici)
{
    super(uretici);
}

public void uretOtomobil(){

   getUretici().uretOtomobil();

}


}


Sıra geldi main class ına...


public static void main(String args[]){

Otomobil otomobil = new HatchbackOtomobil (new Uretici1());
otomobil.uretOtomobil();
Otomobil otomobil = new SedanOtomobil (new Uretici2());
otomobil.uretOtomobil();


}



Bu şekilde Otomobil ile Üretici sınıfını birbirinden ayırıp bridge kurduk. Hepinize kolay gelsin.











Yorumlar

Bu blogdaki popüler yayınlar

IONIC BAŞLANGIÇ

Cannot resolve the collation conflict between “Turkish_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation

Golang working with interfaces and functions -3