我認為它被認為是反模式,因為其他對象不能正常地實例化Singleton類(除了調(diào)用這種通常稱為“getInstance”的方法外)。因此,它看起來就像類被直接使用,而不是先實例化它來創(chuàng)建一個可用的對象。
我同意你的觀點,辛格爾頓可以作為一個全球獨一無二的例子。我從一些人那里了解到,作為Singleton的替代品,我們可以使用靜態(tài)變量和/或最終變量,我們也可以使用枚舉(這樣我們就可以使用一個組名對多個變量進行分組,就像我們在使用普通類/對象時通常所做的那樣)。
但是,這些替代只能與Singleton類在存儲狀態(tài)/值方面的能力相匹配。如果我們需要使用唯一的函數(shù),那么這些靜態(tài)/最終變量和枚舉就幫不上忙了。在我看來,當(dāng)我們需要使用Singleton類(當(dāng)我們需要一些獨特的函數(shù)來處理靜態(tài)/最終狀態(tài)/值時),情況就是這樣。
干杯.。*)