Ön Yüz

Bu tasarım deseni, sistemin detaylarını saklayarak, istemcinin dışarıdan sisteme ulaşabilmesi için tek bir ön yüz sunar. Sistemdeki alt sınıflara, bu ön yüz sınıfı ile ulaşılır. İstemci yanlızca sistemdeki bu ön yüz sınıfını bilir. Yani kısaca ön yüz sınıfı, sistemin dışarıya açılmış bir kapısı gibidir.

Örnek :

Örnekte bir bilgisayar sistemi görmektesiniz. Bilgisayar sisteminin sabit disk, bellek ve işlemci isminde bileşenleri vardır. İstemci durumunda olan bilgisayar kullanıcısı, yalnızca bilgisayara Bilgisayar sınıfından ulaşabilmektedir. Örnekteki ön yüz sınıfı bu sınıftır. Örnekte olduğu gibi, istemci bilgisayarı açmak istediğinde Bilgisayar sınıfının yordamını kullanarak, bu istediğini yerine getirebilir. Ön yüz sınıfı ise, bu istek için bilgisayarın diğer bileşenlerine kendisi ulaşarak sistemi yönlendirir. Yani Bilgisayar sınıfı bilgisayar sistemine ulaşmakta bir ön yüzdür. İstemci sistemin diğer bileşenlerini bilmez ve bunlara doğrudan ulaşamaz.

Örnek Sınıf Çizelgesi :

Örnek Java Kodu : ( Kodlar java 1.6.0.7 ile derlenip, çalıştırılmıştır. )

Bellek.java :

public class Bellek {


public void yükle( String adres, String bilgi ) {

System.out.println( "Bellek " + adres + "'ine, '"

+ bilgi + "' bilgisini yükledi." );

}

}

SabitDisk.java :

public class SabitDisk {


public String oku( String başlangıç_adresi, String uzunluk ) {


System.out.println( "Sabit disk '" + başlangıç_adresi + "' "

+ "adresinden " + uzunluk + " kadar bilgiyi okudu." );


return "okunan_bilgi";

}

}

İşlemci.java :

public class İşlemci {


public void açıl() {

System.out.println( "İşlemci açıldı." );

}


public void konumlan( String adres ) {

System.out.println( "İşlemci " + adres

+ "'ine konumlandı." );

}


public void çalış( ) {

System.out.println( "İşlemci çalıştı." );

}

}

Bilgisayar.java :

public class Bilgisayar {

public void aç() {

İşlemci işlemci = new İşlemci();

Bellek bellek = new Bellek();

SabitDisk disk = new SabitDisk();


işlemci.açıl();


String açılış_bilgisi = disk.oku(

"başlangıç sektörü:4545656", "sektör uzunluğu:1222" );


bellek.yükle( "açılış adresi:1522262", açılış_bilgisi );


işlemci.konumlan( "açılış adresi:1522262" );


işlemci.çalış();

}

}

BilgisayarKullanıcısı.java :

public class BilgisayarKullanıcısı {


public static void main(String[] args) {

Bilgisayar bilgisayar = new Bilgisayar();

bilgisayar.aç();

}

}