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.");
}
}
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.
Ü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
Yorum Gönder