IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 22 Ağustos 2012, 09:41   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Fabrika Yordamı (Builder Design Pattern) ile Tasarım Şablonu




Fabrika Yordamı

Bu desen nesne yaratan bir yordamdan ibarettir. Yordama nesne ile ilgili bir değiştirge verdiğinizde, bu değiştirgeye bağlı olarak size belli bir nesneyi yaratıp döndürür. Yaratılan nesne belirli bir üst sınıftan türeyen bir sınıf tipindedir. Bu desenle nesne yaratma sorumluluğunu, bir yordama vererek sistemden soyutlamış olursunuz. Sistem belli hiyerarşideki nesnelerden hangisinin ve nasıl yaratıldığı ile ilgilenmemiş olur. Uygulamada belirli tipteki nesnelerin yaratılma işini ve bu işin detaylarını ayırmak istiyorsanız, bu deseni kullanabilirsiniz.
Örnek :
Bir kırtasiye sisteminde öğrenciler dolma kalem ve kurşun kalem olmak üzere iki ayrı tipteki kalemlerle çizim yapmaktadırlar. Fakat bu kırtasiye sistemindeki öğrenci yalnızca çizim yapmak istemekte ve kalem seçme ve yaratma sorumluluğunu bir başka sınıfa bırakmak istemektedir. Böyle bir durumda fabrika yordamı tasarım desenini kullanabiliriz. Sistemde her şeyden önce Kalem nesnesini ve bundan türemiş DolmaKalem ve KurşunKalem nesnelerini kurmak durumundayız. Buradaki Kalem nesnesi bir arayüz sınıfı veya soyut sınıf olabilir. Bunların ortak yordamı olan çizim yapma ile ilgili bir başka yordama da ihtiyaç duyarız. Örnek de bunun ismine çizimYap ismini verdik. Bir kalem nesnesi yaratıp da döndüren bir tane de fabrika sınıfına ihtiyaç duyarız. Bu örnek de bunun için KalemFabrikası isimli sınıfı kullandık. Bu sınıf desene ismini veren fabrika yordamını bulundurmaktadır. Sistemi kullanan ana sınıf da Öğrenci sınıfıdır. Her ne kadar örnek de öyle kullandıysak da fabrika yordamı için ayrıca bir sınıf kurmak zorunda değiliz. Bu yordamı Öğrenci sınıfının içine de koyabilirdik.



Örnek Sınıf Çizelgesi :



Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Kalem.java :
PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public interface Kalem {
         
void çizimYap();
         } 

DolmaKalem.java :
PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class DolmaKalem implements Kalem {
         
        @
Override
         
public void çizimYap() {
         
// Dolma kalem çizim işlemi.
         
System.out.println"Dolma kalem çizimi." );
         }
         } 

KurşunKalem.java :
PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class KurşunKalem implements Kalem {
         
        @
Override
         
public void çizimYap() {
         
// Kurşun kalem çizim işlemi.
         
System.out.println"Kurşun kalem çizimi." );
         }
         } 

KalemFabrikası.java :
PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class KalemFabrikası {
         
        public 
Kalem kalemYaratString tip ) {
         if ( 
tip.equals"kuşun" ) ) {
         return new 
KurşunKalem();
         } else if ( 
tip.equals"dolma" ) ) {
         return new 
DolmaKalem();
         }
         
// Varsayılan kalem tipi.
         
return new KurşunKalem();
         }
         } 

Öğrenci.java :
PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class Öğrenci {
     public static 
void main(String[] args) {
     
Kalem kalem = new KalemFabrikası().kalemYarat"dolma" );
     
kalem.çizimYap();
     }
     } 

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla

Etiketler
builder, design, fabrika, ile, pattern, tasarım, yordamı, Şablonu


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Dua'nın Gücü - Ruh Yordamı / Gökhan Özcan Sevda İslamiyet 0 27 Aralık 2011 05:39
Bugatti Type 12-2 Streamliner Concept Design by Racer X Design mihrac Otomobil Haberleri 2 12 Nisan 2008 02:47