Mehmet Ethem SULAN :: Java Tasarım Şablonları :: Bridge Design Pattern and UML Diagram(Köprü Tasarım Şablonu) Java Example

Image00001

Uml diagram:http://prntscr.com/6xx1

Bir sınıfın arayüzünü implementasyonundan ayırmak için kullanılır.Bir sınıfın yapacağı işlemler belirlenmiş ise ve aynı işi farklı sistemlerde farklı yapılacaksa bu kalıp kullanılır.Bunu da adapter kalıbıyla farklı sistemlerde farklı şekilde kullanılmasını sağlayabiliriz.Köprü oluşumunda abstract factory kalıbı genelde kullanılır.Bu kalıp komplex sınıf yapıların oluşmasına engel olur.Bu da bize kontrolü bize verir.Yani bu şablonla kolay ve esnek yönetilebilir bir sistem sağlar bize.Karmaşık ve bakımı zor olan sistemlerin oluşumunu engeller.

package www.ethemsulan.com;
public abstract class FilmStok {
public abstract String filmSiparis(String f);
	private SiparisArayuzu sipNes;
public SiparisArayuzu getSipNes() {
		return sipNes;
	}
public void setSipNes(SiparisArayuzu sipNes) {
		this.sipNes = sipNes;
	}
public FilmStok(SiparisArayuzu sipNes) {
		super();
		setSipNes(sipNes);
	}
}

Orj kod:http://www.ethemsulan.pastebin.com/B9uwLvkq

package www.ethemsulan.com;
public interface SiparisArayuzu {
String maceraFilmSiparis(String f1);
String korkuFilmSiparis(String f2);
String komediFilmSiparis(String f3);
}

Orj kod:http://www.ethemsulan.pastebin.com/xCDraHra

package www.ethemsulan.com;
public class FilmUret1 implements SiparisArayuzu {
private FabrikaSonCikanFilmler yeniFilm=
	new FabrikaSonCikanFilmler();
public String komediFilmSiparis(String f3) {
return yeniFilm.komediSonCikFilmSiparis(f3);		
	}
public String korkuFilmSiparis(String f2) {
return yeniFilm.korkuSonCikFilmSiparis(f2);		
	}
public String maceraFilmSiparis(String f1) {
return yeniFilm.maceraSonCikFilmSiparis(f1);		
	}
}

Orj kod:http://www.ethemsulan.pastebin.com/VvJHSr87

package www.ethemsulan.com;
public class FilmUret2 implements SiparisArayuzu {
private FabrikaEskiFilmler eskiFilm=new FabrikaEskiFilmler();
public String komediFilmSiparis(String f3) {
return eskiFilm.komediEskiFilmSiparis(f3);
	}
public String korkuFilmSiparis(String f2) {
return eskiFilm.korkuEskiFilmSiparis(f2);
	}
public String maceraFilmSiparis(String f1) {
return eskiFilm.maceraEskiFilmSiparis(f1);
	}
}

Orj kod:http://www.ethemsulan.pastebin.com/7VCcyuJv

package www.ethemsulan.com;
public class FabrikaSonCikanFilmler {
public String maceraSonCikFilmSiparis(String f1){
		return f1;
	}
public String korkuSonCikFilmSiparis(String f2){
		return f2;
	}
public String komediSonCikFilmSiparis(String f3){
		return f3;
	}
}

Orj kod:http://www.ethemsulan.pastebin.com/fzzaNGze

package www.ethemsulan.com;
public class FabrikaEskiFilmler {
public String maceraEskiFilmSiparis(String f1){
		return f1;
	}
public String korkuEskiFilmSiparis(String f2){
		return f2;
	}
public String komediEskiFilmSiparis(String f3){
		return f3;
	}
}

Orj kod:http://www.ethemsulan.pastebin.com/KgZkYJg4

package w
ww.ethemsulan.com;
public class Macera extends FilmStok {
public Macera(SiparisArayuzu sipNes){
		super(sipNes);
	}
public String filmSiparis(String f) {
		return maceraFilmSiparis(f);
	}
private String maceraFilmSiparis(String f) {
		return getSipNes().maceraFilmSiparis(f);
	}
}

Orj kod:http://www.ethemsulan.pastebin.com/B0d7WiuL

package www.ethemsulan.com;
public class Korku extends FilmStok {
public Korku(SiparisArayuzu sipNes2){
		super(sipNes2);
	}
public String filmSiparis(String f) {
		return korkuFilmSiparis(f);
	}
private String korkuFilmSiparis(String f) {
		return getSipNes().korkuFilmSiparis(f);
	}
}

Orj kod:http://www.ethemsulan.pastebin.com/uyua2D2F

package www.ethemsulan.com;
public class Komedi extends FilmStok {
public Komedi(SiparisArayuzu sipNes3){
		super(sipNes3);
	}
public String filmSiparis(String f) {
		return komediFilmSiparis(f);
	}
private String komediFilmSiparis(String f) {
		return getSipNes().komediFilmSiparis(f);
	}
}

Orj kod:http://www.ethemsulan.pastebin.com/kZ4F9Gwm

package www.ethemsulan.com;
import javax.swing.JOptionPane;
public class Test {
public static void main(String[] args) {
FilmStok goster=new Macera(new FilmUret1());
String f=JOptionPane.showInputDialog("Yeni bir macera filmi gir");
System.out.println("Macera yeni film: "+goster.filmSiparis(f));
goster=new Macera(new FilmUret2());
f=JOptionPane.showInputDialog("Eski macera film gir");
System.out.println("Macera eski film: "+goster.filmSiparis(f));
goster=new Korku(new FilmUret1());
f=JOptionPane.showInputDialog("Yeni korku film gir");
System.out.println("Korku yeni film: "+goster.filmSiparis(f));
goster=new Korku(new FilmUret2());
f=JOptionPane.showInputDialog("Eski korku film gir");
System.out.println("Korku eski film: "+goster.filmSiparis(f));
goster=new Komedi(new FilmUret1());
f=JOptionPane.showInputDialog("Yeni komedi film gir");
System.out.println("Komedi yeni film: "+goster.filmSiparis(f));
goster=new Komedi(new FilmUret2());
f=JOptionPane.showInputDialog("Eski komedi film gir");
System.out.println("Komedi eski film: "+goster.filmSiparis(f));
	}
}

Orj kod:http://www.ethemsulan.pastebin.com/mhuHfKcb

Write a Comment

Let me know what you think?