2012-11-04 20 views
8

Enumlar, singletonlar için en iyi yol olarak kabul edilir ve bunun nedenlerinden biri, dolaylı olarak Serializable'u miras almasıdır.Enums, Singletons ve Deserialization

Ancak enumlar tekillerin serileştirme sorununu nasıl önler?

+0

Enum bir tekildir, ancak tektonların serileştirme problemleri nelerdir? – clinton

+2

@clinton: eğer seri hale getirilebilen tek bir seri yaparsanız ve seri hale getirilmediyse, tektonizmin her defasında tektonuzun yeni bir örneğini alırsınız. –

+0

@JBNizet bilgi için teşekkürler. Şimdiye kadar singletons ile ilgili bu konuya bakmamıştım. Ya da beni önemli olarak vurmamış olabilir. – clinton

cevap

1

Tekton için enum kullanmak için argüman olarak serileştirme saçmalıktır.

Enum tekil durum bilgisi varsa, seri hale getirme/serileştirme sırasında durum kaybedilir.

Singleton durumsuzsa, kimliği kimin umurunda?

+0

Tekil, durum bilgisi olmayansa ve kod (örneğin) if (someVar == SomeSingleton.INSTANCE) 'kullanıyorsa, kimliğini gerçekten önemsersiniz. –

+0

Gerçek dünya kullanım durumu yok. Jushua Bloc bu şeyi hazırladı. Genellikle bir tekil serileştirmeyi kolaylaştırmak için enum kullanarak, yine de seri hale getirilmemelidir yanlıştır. Ayrıca, singleton bir uygulama stratejisidir, arayüzde tanıtmamız gereken bir şey değildir. – irreputable

İlgili konular