Эта функция действует как синглтон? - PullRequest
1 голос
/ 30 сентября 2019

Я нашел Pages со статическим getPages<>() методом.

class Pages
{
    private static T getPages<T>() where T : new()
    {
        var page = new T();
        PageFactory.InitElements(Browsers.getDriver, page);
        return page;
    }
    public static Home Home => getPages<Home>();
    public static Dashboard Dashboard => getPages<Dashboard>();
    public static Profile Profile => getPages<Profile>();
}

То, как я работаю с этим классом Pages, выглядит следующим образом:

 Pages.Dashboard.IsAt();
 Pages.Profile.GoTo();
 Pages.Profile.IsAt();

Я пытаюсь понять, что происходит в функции getPages<>().

Когда я делаю, например:

Каждый раз, когда я звоню Pages.Dashboard.IsAt();, создается ли новый экземпляр Dashboard или только один экземпляр?

1 Ответ

1 голос
/ 30 сентября 2019

Создает и возвращает новый экземпляр, но доступ к этому геттеру - статический метод.

Свойство «Панель инструментов» является статическим, это означает, что вы можете получить к нему доступ из определения класса, и выему не нужен экземпляр класса "Pages", чтобы добраться до него.

Но поскольку свойство является средством получения, которое выполняет функцию, и поскольку эта функция каждый раз возвращает новый экземпляр, в результате вы получаетекаждый раз новый экземпляр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...