Отложив до сих пор аргументы относительно относительных добродетелей и disvirtues шаблона Singleton и учитывая, что Singleton обычно считается экземпляром, который сохраняется на протяжении всего срока службы приложения, что было бы лучшим способом иметь синглтон, который имеет ограниченную жизнь?Истекает экземпляр Singleton после периода времени
Есть ли что-нибудь неладно что-то вроде следующего:
public class CategoryHandler
{
private static DateTime m_expires;
public bool HasExpired
{
get return DateTime.Now > m_expires;
}
private CategoryHandler()
{
m_expires = DateTime.Now.AddMinutes(60);
}
public static CategoryHandler Instance()
{
if(HasExpired)
{
//Dispose and reconstruct
}
else
{
//Use existing instance
}
}
}
Или есть гораздо лучший способ подойти к этой проблеме?
Вам нужно пропустить синглтон, удалив его через 60 минут или просто «в следующий раз, когда кто-то использует его через 60 минут»? –
Это будет в следующий раз, когда он будет использован через 60 минут (или, как бы долго он ни был, я выбрал 60 минут только для примера). – Jason