Tasarım Desenleri
Nesneye Dayalı Programlamada Sınıf İlişkileri Nasıl Olmalı?
Testçiler sizin düşmanınız değildir. Esas düşman yazılım hatalarıdır!
Yapısal Tasarım Desenleri

Ön Yüz ( Facade ) Tasarım Deseni

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 Uygulama

Ö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 aç 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.

/**
*
@author İlker KONAR, Yazılım Kıdemli Uzmanı.
*
* Tasarım Desenleri Sitesi Kodları. Dikkat: Her hakkı saklıdır.
*/

package com.ilkerkonar.td.desen.ornekkodlar.facade;

/**
* Bellek.java
*
* Tarih bilgisi : May 24, 2014
*/
public class Bellek {

 
public void yükle( final String adres, final String bilgi ) {
   
System.out.println( "Bellek " + adres + "'ine, '" + bilgi + "' bilgisini yükledi." );
 
}
}
/**
*
@author İlker KONAR, Yazılım Kıdemli Uzmanı.
*
* Tasarım Desenleri Sitesi Kodları. Dikkat: Her hakkı saklıdır.
*/



package com.ilkerkonar.td.desen.ornekkodlar.facade;

/**
* İşlemci.java
*
* Tarih bilgisi : May 24, 2014
*/
public class İşlemci {

  
public void açıl() {
     
System.out.println( "İşlemci açıldı." );
  
}

  
public void konumlan( final String adres ) {
     
System.out.println( "İşlemci " + adres + "'ine konumlandı." );
  
}

  
public void çalış() {
     
System.out.println( "İşlemci çalıştı." );
  
}
}
/**
*
@author İlker KONAR, Yazılım Kıdemli Uzmanı.
*
* Tasarım Desenleri Sitesi Kodları. Dikkat: Her hakkı saklıdır.
*/

package com.ilkerkonar.td.desen.ornekkodlar.facade;

/**
* SabitDisk.java
*
* Tarih bilgisi : May 24, 2014
*/
public class SabitDisk {

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

     
System.out.println( "Sabit disk '" + başlangıç_adresi + "' " + "adresinden " + uzunluk
         +
" kadar bilgiyi okudu." );

     
return "okunan_bilgi";
  
}
}
/**
*
@author İlker KONAR, Yazılım Kıdemli Uzmanı.
*
* Tasarım Desenleri Sitesi Kodları. Dikkat: Her hakkı saklıdır.
*/



package com.ilkerkonar.td.desen.ornekkodlar.facade;

/**
* Bilgisayar.java
*
* Tarih bilgisi : May 24, 2014
*/
public class Bilgisayar {

 
public void () {

   
// Ön yüz sınıfının kullandığı ve istemcinin
    // bilmediği detay sınıflar.
   
final İşlemci işlemci = new İşlemci();
   
final Bellek bellek = new Bellek();
   
final SabitDisk disk = new SabitDisk();

    işlemci.açıl
();

   
final 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ış
();
 
}
}
/**
*
@author İlker KONAR, Yazılım Kıdemli Uzmanı.
*
* Tasarım Desenleri Sitesi Kodları. Dikkat: Her hakkı saklıdır.
*/



package com.ilkerkonar.td.desen.ornekkodlar.facade;

/**
* BilgisayarKullanıcısı.java
*
* Tarih bilgisi : May 24, 2014
*/
public class BilgisayarKullanıcısı {

 
public static void main( final String[] args ) {

   
// Ön yüz sınıfını yarat.
   
final Bilgisayar bilgisayar = new Bilgisayar();

   
// Ön yüz sınıfından sisteme bir iş yaptır.
   
bilgisayar.aç();
 
}
}
İşlemci açıldı.
Sabit disk 'başlangıç sektörü:4545656' adresinden sektör uzunluğu:1222 kadar bilgiyi okudu.
Bellek açılış adresi:1522262'ine, 'okunan_bilgi' bilgisini yükledi.
İşlemci açılış adresi:1522262'ine konumlandı.
İşlemci çalıştı.

Yorumlar

Henüz bu sayfa için bir yorum yapılmamıştır.

Yorum Yaz, Düşüncelerini Paylaş

Not: Zorunlu alanlar yıldız (*) ile belirtilmiştir.

Kişisel Bilgiler

E-posta adresiniz kimse ile paylaşılmayacaktır. Gerekli olduğunda sizinle iletişim sağlamak için kullanılacaktır.

Yorum Alanı
Giriş Kontrol


Tüm java kodları "jdk1.7.0_09" ile derlenmiş ve çalıştırılmıştır.

Tüm hakları saklıdır. ©  "İlker KONAR" | İletişim: bilgi@tasarimdesenleri.com