Я столкнулся со следующей ситуацией. В моем проекте много файлов классов, и по мере развития проекта создавались новые функции, но без правильного обзора кода. Итак, у нас есть некоторые дублированные объекты (для доступа к базе данных, например, к контроллеру), создаваемые вокруг одного и того же класса, но мы не знаем, лучше ли создавать только один глобальный объект или если мы должны оставить их внутри функции, потому что иногда код не достигает этой функции, поэтому объект никогда не будет создан. Если он глобальный, он будет создан каждый раз.Правильное место для объявления объекта в C#
Пример:
namespace EventWorks.View
{
public partial class Event : System.Web.UI.Page, ISecurityRules
{
protected void btnNew_Click(object sender, EventArgs e)
{
EventController EventCtrl = new EventController();
//some code
}
protected void btnSave_Click(object sender, EventArgs e)
{
EventController EventCtrl = new EventController();
//some code
}
}
}
Мой вопрос, где я должен создавать эти объекты? Лучше создать его во всем мире? Или оставить его внутри функции и позволить сборщику мусора позаботиться об этом? Или сделать большой анализ и проверить для каждого файла, какой вариант лучше?
это статическая декларация, не синглтон, синглтон является альтернативой статической –
Существуют различные способы реализации одиночек. Дело в том, что у вас есть нестатический класс, который создается только один раз. Даже если вы реализуете его с помощью контейнера IOC, вам понадобится статический доступ к этому контейнеру.Там должно быть что-то статическое, что позволяет вам получить доступ к синглтону. –
точно, однако в вашем примере, u ничего не сделал, как singleton ... любая из 4 наиболее распространенных реализаций его –