SORU
2 EKİM 2008, PERŞEMBE


GOF Singleton Deseni için herhangi bir uygun alternatifler var mı?

Şunu kabul edelim. Singleton Deseni ordularını programcılar highly controversial konudurher ikisi deçit tarafı. Tekil kaliteli global bir değişken o zaman başka bir şey değil gibi düşünenlerin ve desen yemin Diğerleri ve sürekli onu kullanın. Benim sorum kalbinde yalan Singleton Controversy, ancak istemiyorum.Herkes bir çekişme ve savaş ve umurumda değil kimin kazanacağını göreceğiz. Demek istediğim şu, tek bir doğru cevabı var inanmıyorum ve kasıtlı olarak partizan sürtüşmeler tahrik çalışmıyorum. Sadece ilgi duyuyorumtek alternatiflerisoru sorduğumda:

Onların GOF Singleton Deseni için herhangi bir özel alternatifler?

Geçmişte singleton deseni kullandım örneğin, birçok kez, sadece bir veya birkaç değişken bir devlet/değerleri korumakla ilgileniyorum. Değişkenlerin durumu/değerleri, ancak, sınıfının her örnekleme kullanarak arasında muhafaza edilebilirstatik değişkenlersingleton deseni kullanmak yerine.

Ne başka bir fikri var mı?

DÜZENLEME:Gerçekten bu "tek doğru kullanmak." hakkında başka bir yazı olmasını istemiyorum Yine, bunu önlemek için yollar arıyorum. Eğlenmek için, tamam mı? En iyi filmde sadece akademik bir soru Fragmanı sesli, "paralel bir evrende tekiz diye bir şey yok burada, ne yapabiliriz?" diye soruyorum sanırım

CEVAP
2 EKİM 2008, PERŞEMBE


Tek geçici çözüm için doğru yolu anlamak için, Tekiz (ve genel olarak küresel devlet) ile sorunun ne olduğunu anlamak gerekir:

Tekiz gizlemek bağımlılıkları.

Neden bu kadar önemli?

ÇünküSen bağımlılıklar gizlerseniz kaplin miktarını kaybetmek eğilimindedir.

Böyle düşünüyor olabilirsiniz

void purchaseLaptop(String creditCardNumber, int price){
  CreditCardProcessor.getInstance().debit(creditCardNumber, amount);
  Cart.getInstance().addLaptop();
}

daha basit

void purchaseLaptop(CreditCardProcessor creditCardProcessor, Cart cart, 
                    String creditCardNumber, int price){
  creditCardProcessor.debit(creditCardNumber, amount);
  cart.addLaptop();
}

ama en azından ikinci API yöntemi işbirlikçileri tam olarak ortaya koyuyor.

Bu yüzden yol için geçici çözüm Tekiz değil kullanın statik değişkenler veya hizmet bulma, ama değiştirmek için Singleton-sınıflara örnekleri, örneği kapsamında nerede onlar mantıklı ve enjekte bileşenleri ve yöntemleri. IoC-bir çerçeve bu işlemek için kullanabilirsiniz, ya da elle yapabilir, ama önemli olan genel devlet kurtulmak ve bağımlılıkları ve işbirliklerine açık olun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AFISHAL

    AFISHAL

    7 Mart 2009
  • Blunty

    Blunty

    13 Mart 2006
  • vgeller1

    vgeller1

    22 Kasım 2009