Почему я не должен устанавливать провайдера Ionic в качестве глобальной переменной? - PullRequest
0 голосов
/ 13 января 2019

В моем проекте Ionic я использую провайдер device.ts во многих пользовательских классах. Проблема заключается в том, что каждый раз, когда я использую свои пользовательские классы, мне приходится передавать в него моего провайдера устройств, поскольку другого способа добраться до него нет.

Итак, мой код каждый раз будет выглядеть так:

let user = User(device);
let cart = Cart(device);
let page = Page(device);

Чтобы обойти это, в конструкторе моего провайдера я могу установить

window.device = this;

Теперь мне не нужно передавать устройство каждому из моих объектов, так как я могу получить его там как window.device. Какой в ​​этом вред? В документации Ionic нет ничего подобного, и я не уверен, почему, или если то, что я делаю, - плохая идея.

1 Ответ

0 голосов
/ 13 января 2019

Идея в том, что ваши пользовательские классы могут выжить вне вашего проекта. Ваш пользователь () должен иметь возможность использоваться везде, где предоставляется устройство (в том виде, в котором оно звучит так, как вы его написали). По крайней мере, это мое скромное мнение. Если ваши пользовательские классы полагаются на некоторую переменную в вашем проекте, то они не могут стоять самостоятельно и не могут использоваться повторно.

Если вы никогда не планируете многократно использовать свой код, сделайте это сами. Я всегда преследую лучшие практики, но иногда трачу время на это. Делай, что лучше для твоей ситуации.

Я всегда верю, что модульность делает мой код легче для понимания и исправления позже. Если один фрагмент кода является самодостаточным и не зависит от другого раздела кода или глобальной переменной и может быть понят сам по себе, без понимания всего проекта, он всегда более удобен для меня.

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