Mehmet Ethem SULAN :: Java Tasarım Şablonları :: Java Facade Design Pattern Example and UML Diagram(Cephe Tasarım Şablonun Java Kodu)

facade
Uml diagram:http://prntscr.com/6zve

Büyük sistemlerde bir çok kişi farklı bileşenlerde çalışır.Bu bileşenlerin dış dünyaya açılan bir basit kapıları olur.Bunun üzerinden iletişim sağlanır.Katmanlı mimarilerde de böyledir.katmanalr arası izolasyonu sağlar.Tıpkı farklı ekiplerin aynı projede birbirinden bağımsız çalışmaları gibi.Işte bu tür komplex yapıların içeriğini soyutlayıp basit bir arayüzle dışa açılmasını bu kalıbla sağlarız.Bir bina düşünelim.Binaya bakınca dış görnümü görürüz, içteki kabloları,taş,beton… karmaşıklığı göremiyoruz.Facade içteki bu karmaşıklığı soyutlar ve basit bir kullanım bize sağlar.Örneğin Java da JDBC bir facadedir.Veritabanına bağlanırken arka planda neler olup bittiğini bilemiyoruz ve bilmemizde gerekmez.Yazdığım örnektede kullanıcı ad ve parola girip enterliyor.Arka planda yapılan kontroller soyutlanmış.Biz sadece değerleri giriyoruz doğru ise doğru yanlış ise yanlış sonuç geriye dönderir.Mesela bir bankaya kredi çekmek isteyen bir müşteri gelince bilgiler girer arka planda bu müşterinin kredi alabilir durumda olması kontrol ediliyor.Ama bu tür işlemler soyutlanır.

package www.ethemsulan.com;
public interface Arayuzumuz {
public String kulAd(String ad);
public String parola(String parola);
}

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

package www.ethemsulan.com;
public class Fabrikamiz implements Arayuzumuz{
public String kulAd(String ad) {
return new KontrolYap().ad(ad);
	}
public String parola(String parola) {
return new KontrolYap().par(parola);
	}
}

Orj kod:http://www.ethemsulan.pastebin.com/06WGkZnc

package www.ethemsulan.com;
public class KontrolYap {
public String ad(String ad) {
	if(ad.equals("ethem")){
		return " dogru kullanici adi";
		}
		return " yanlis kullanici adi";
	}
public String par(String parola) {
	if(parola.equals("sulan")){
			return " dogru parola";
		}
		return " yanlis parola";
	}
}

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

package www.ethemsulan.com;

public class KullaniciSinif {
 Fabrikamiz fabNes=new Fabrikamiz();
 private String kulAd;
 private String parola;
 public String getKulAd() {
 return kulAd;
 }
 public void setKulAd(String kulAd) {
 this.kulAd = kulAd;
 }
 public String getParola() {
 return parola;
 }
 public void setParola(String parola) {
 this.parola = parola;
 }
 public KullaniciSinif(String ad, String parola){
 setKulAd(ad);
 setParola(parola);
 }
 public void dogruMu(){
 System.out.println("Girilen "+getKulAd()+fabNes.kulAd(getKulAd()));
 System.out.println("Girilen "+getParola()+fabNes.parola(getParola()));
 }
}
Orj kod:http://www.ethemsulan.pastebin.com/NdsbhAFj
package www.ethemsulan.com;
public class TestSinifi {
public static void main(String[] args) {
KullaniciSinif kulAdParola=
	new KullaniciSinif("ethem", "sulan");
	kulAdParola.dogruMu();
kulAdParola=new KullaniciSinif("mehmet", "duman");
	kulAdParola.dogruMu();
	}
}

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

Comments

There is one comment for this post.

  1. Anonim on Ocak 4, 2012 2:49 pm

    This text is worth everyone’s attention. Where can I find out more?

Write a Comment

Let me know what you think?