2017-02-09 5 views
1

Я новичок в TypeScript и объектно-ориентированном программировании, у меня есть некоторые функции, которые должны ждать друг друга (обещания в JavaScript), а обещания зависят друг от друга, например:Является ли стандартом доступ к статическому методу из других классов?

В главном файле сценария у меня есть основной класс, и я импортировал другие файлы и классифицировал их внутри. (я имею в виду с помощью import {bla-bla-class} from "bla-bla")

У меня был promise для load(в зависимости от страницы и интернет-скорости может занять несколько миллисекунд или секунд ...) с помощью addEventListener и configSetter метод является awaited для этого метода (load)) для установки конфигураций (мне нужно, чтобы страница была полностью загружена для установки конфигураций), тогда мне нужно было указать метод ready() в моем классе main, что страница загружена и настроены правильно, из-за этого я добавил еще один promise для ready() метода внутри main класса ждать configSetter() метода (потому что сам конфигурационный сеттер нужно ждать load метода ready() также в зависимости от него, так что мне нужно ждать), когда я собирал и в комплекте файлов, то файл был тяжелее, чем я ожидал, а также мои машинопись файлы были более сложными для понимания из-за дифферент promises я использовал

Я думал, что, может быть, я могу экспортировать main класс, а также сделать его ready() метод static, так что я мог бы получить доступ к мой метод основного класса ready() из другого класса легко, но теперь я не уверен, если это что люди делают в объектно-ориентированном программировании?

Можно ли использовать методы основного класса (даже статические) внутри других классов и методов? (особенно, когда они не являются основными классами и являются лишь некоторыми полезными методами ... должны ли они называть методы класса main?)

+0

длинный вопрос, но хороший. Мне также нужно знать ответ! – M98

+0

Возможный дубликат [Java: когда использовать статические методы] (http://stackoverflow.com/questions/2671496/java-when-to-use-static-methods) – Igor

+1

@Igor, но это в Java, вот JavaScript ,Но я согласен, что основные понятия должны быть одинаковыми. спасибо –

ответ

0

Основным преимуществом для функций static было бы предоставление полезных функций, которые не работают конкретный экземпляр (например, класс Math). Для выполнения математических функций вам не нужен экземпляр Math, потому что это и ненужное использование памяти, и несколько нелогичное).

Другое использование для static - это общий ресурс между несколькими экземплярами того же класса. Я приведу пример из Angular> = 2.x development:

Предположим, у вас есть служба для входа в систему и выхода из системы. Попытка сохранить профиль пользователя нестатического поля приведет к непредвиденным значениям undefined для профиля пользователя в некоторых случаях использования, несмотря на вход в систему. Это связано с тем, что профиль пользователя не используется в разных экземплярах. Создание static гарантирует, что поле для каждого экземпляра класса является одним и тем же.

Это верно для ООП в целом.

Надеюсь, что это поможет! :)

+0

Спасибо за ваш ответ, нет, я не использую Angular 2, я просто изучаю TypeScript –

+0

@TypeScriptLearner все еще применяются общие принципы, тот же объект через экземпляры класса :) – K3v1n

 Смежные вопросы

  • Нет связанных вопросов^_^