• 22-09-2013, 15:17:20
    #1
    Sefer Algan'ın kitabında Singleton Nesneler konusuna geçtim arkadaşlar.Beynim allak bullak oldu desem yeridir

    Şimdi bu Singleton ile kullanıcıya sürekli olarak kullanabileceği sadece tek bir nesne üretmesini mi sağlıyoruz?Eğer öyleyse gündelik kullanımdan bir örnek verebilir misiniz?(Misal SqlConnection cümlesini bu Singleton kullanımı ile nasıl kullanabiliriz?)
  • 22-09-2013, 19:21:07
    #2
    Üyeliği durduruldu
    Singleton nesne, bir objeden sadece bir tane olmasını garantiye alır hocam genel yazım olarak, nesne nin constructor unu private yaparsınız, bir tane static nesne koyar bir tane de static getInstance() gibi bir metodla erişim sağlarsınız. SqlConnection gibi bir class ı da singleton yapabilirsiniz ancak pek tavsiye edilmez Ufak bir örnek verecek olursak,

    http://prntscr.com/1stgzd
  • 22-09-2013, 19:52:33
    #3
    Hyperion adlı üyeden alıntı: mesajı görüntüle
    Singleton nesne, bir objeden sadece bir tane olmasını garantiye alır hocam genel yazım olarak, nesne nin constructor unu private yaparsınız, bir tane static nesne koyar bir tane de static getInstance() gibi bir metodla erişim sağlarsınız. SqlConnection gibi bir class ı da singleton yapabilirsiniz ancak pek tavsiye edilmez Ufak bir örnek verecek olursak,

    http://prntscr.com/1stgzd
    Teşekkürler hocam.Ben bu yazdığınızı konsol uygulamasında ayrı bir sınıfta yazdım buna main metodundan nasıl erişeceğim ?
  • 22-09-2013, 19:53:35
    #4
    Üyeliği durduruldu
    Yukardaki örnek için,
    Mailer m = new Mailer("foo@bar.com"); değil de, Mailer m = Mailer.GetInstance(); diyeceksin
  • 22-09-2013, 19:58:59
    #5
    Hyperion adlı üyeden alıntı: mesajı görüntüle
    Yukardaki örnek için,
    Mailer m = new Mailer("foo@bar.com"); değil de, Mailer m = Mailer.GetInstance(); diyeceksin
    hocam bu son yazdığınız kodu eklemeden önce şöyle bir hata verdi o yüzden bu m=mailer.getinstance'yi deneyemedim.

    Hata şöyle;

    'Mailer': member names cannot be the same as their enclosing type

    private static Mailer Mailer; daki en sondaki Mailer'in altını çiziyor.
  • 22-09-2013, 20:04:08
    #6
    Üyeliği durduruldu
    http://prntscr.com/1strn6 şu şekilde olacak yanlışlıkla obje adını sınıf adıyla aynı yapmışım
  • 22-09-2013, 20:11:11
    #7
    Hyperion adlı üyeden alıntı: mesajı görüntüle
    http://prntscr.com/1strn6 şu şekilde olacak yanlışlıkla obje adını sınıf adıyla aynı yapmışım
    Oldu hocam sağolasın.Yani Singleton Nesnelerin kullanımı bu şekilde oluyor?Bunun avantajı ne oluyor programcıya ?
  • 22-09-2013, 20:13:05
    #8
    Üyeliği durduruldu
    pcbagimlisi adlı üyeden alıntı: mesajı görüntüle
    Oldu hocam sağolasın.Yani Singleton Nesnelerin kullanımı bu şekilde oluyor?Bunun avantajı ne oluyor programcıya ?
    Bir nesneden bir çok olacağına bir tane oluyor, memory den kazanç
  • 22-09-2013, 20:17:41
    #9
    pcbagimlisi adlı üyeden alıntı: mesajı görüntüle
    Oldu hocam sağolasın.Yani Singleton Nesnelerin kullanımı bu şekilde oluyor?Bunun avantajı ne oluyor programcıya ?
    Şu şekilde editledim daha kullanışlı oldu;

    GetInstance metoduna bir parametre ekledim.

    mInstance=new Mailer(parametre); dedim

    Main'de

    Mailer m1=Mailer.GetInstance("Muhhahah@hotmail.com"); diyerek foobar yerine başka yazdırabildim bu sayede pratik bir şekilde mail bilgileri elde edilebiliyor kullanım amacı sanırsam performans ve zaman kazancı?

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 20:17:41 -->-> Daha önceki mesaj 20:14:45 --

    Hyperion adlı üyeden alıntı: mesajı görüntüle
    Bir nesneden bir çok olacağına bir tane oluyor, memory den kazanç
    Hocam programda bu gönderici,alıcı,başlık,mesaj içeriklerini değişkenlerde direk tutup mail gönderme kodlarında kullansak daha fazla memoryden kazanç elde etmiş olmaz mıyız?