2010-04-24 14 views
8

Tektonlar sık ​​sık kötü bir tasarım seçimi olduğu söylenir, bu yüzden onları önlemek istediğinizde nasıl bir uygulama tasarlamanız gerekir?Singletons'u neyle değiştirdiniz?

+0

Kullanımları var, ancak bunları ne zaman kullanmaları gerektiğini bilmelisiniz. Kötü bir tasarım seçiminden ziyade kötü bir uygulama seçiminin parçası olabileceğini söyleyebilirim. –

+0

Bu makaleyi kontrol edin: [http://www.ibm.com/developerworks/webservices/library/co-single.html](http://www.ibm.com/developerworks/webservices/library/co-single.html – pierocampanelli

cevap

8

yerine onlara

+0

Özellikle, DI çerçeveler, tek bir kablodan daha fazla yalıtım sağlayarak ve gerekirse daha iyi yalıtım ve ileride birden fazla örneğe genişletme olanağı sağlayarak, gereken birçok kablolamayı basitleştirebilir. –

2

Benim 2 cent için küresel referans sağlama, size (kullandığınız temelde tekiz) bağlı servisleri enjekte etmek Dependency Injection böyle kavramları kullanabilirsiniz.

Uygulamanızı tek bir nesnenin nesnenize geçirilip geçirilmediğinin bir önemi yoktur.

İçinde MySingleton.Instance varsa -> kötü görünüyor ve bu ile sıkıca bağlı olduğunu düşünün. MySignleton'ı bir yöntemde parametre olarak geçirdiyseniz ve bunun dışında bir MySingleton.Instance veya yeni MySingleton() -> oh olarak tanımlanırsa, yine de alay edebilir veya değiştirebilirim, böylece gerçekten önemli değil.