Вы можете использовать такие услуги, как twilio. Они предоставляют APis и функции обратного вызова. https://www.twilio.com/sms/api
Вы можете использовать этот рабочий процесс.
Вы генерируете токен 'ABC' вместе с уникальным идентификатором и сохраняете его в удаленном хранилище данных с помощью облачной службы или своего пользовательского веб-приложения. Вы можете использовать облачные функции Google с Firebase или Amazon Lamda в качестве облачного сервиса.
Облачная функция или ваше веб-приложение отправит twilio запрос на отправку токена пользователю с помощью SMS
Пользователь получает токен «ABC» и вводит его в поле приложения.
Приложение отправит запрос в облачную службу -> облачная служба извлечет сохраненный токен с использованием уникального идентификатора, сравнит его и отправит возвратное подтверждение.
Приложение перейдет к авторизованному разделу страницы.
Насколько я понял это, идея состоит в том, что значение несуществующего объекта не максимально близко ни к "чему". Это, к сожалению, означает, что необходимо определить его сами. Как пример я лично использую, "" когда я не могу передать пустую строку, число несуществующего объекта для меня-1 (главным образом, потому что по умолчанию большинство последовательностей базы данных запускается в 1, и мы используем последовательности для объекта id:s много, таким образом-1 мертвая дешевая распродажа, это - несуществующий объект), со списками/картами/наборами, которые это Collections.EMPTY_SET
, EMPTY_MAP
или EMPTY_LIST
и т. д. и т. п. Если у меня есть пользовательский класс, я должен создать несуществующий объект из, я удаляю все фактические данные из него и вижу, где это берет меня, и затем примените то, что я просто упомянул, пока это не "пусто".
Таким образом, Вы действительно не "знаете", какое значение возвратиться по умолчанию, просто необходимо решить это собой.
что Вы делаете, когда объекты, которые могут быть несуществующими, имеют методы считывания и используются в Вашем коде? Как Вы знаете который значение возвратиться по умолчанию?
Как Вы знаете который классы реализовать? Это - вопрос о дизайне, он зависит от приложения.
Вообще говоря, цель шаблона NullObject состоит в том, чтобы поддерживать Условное выражение Замены с рефакторингом Полиморфизма в особом случае, где условное выражение является сравнением с нулевым значением языка программирования.
Корректная реализация примера в видео потребовала бы делегирования driveCar
метод к Car
классы. SlowCar
и FastCar
классы выполнили бы цикл, по-видимому, посредством общей реализации в базовом классе, и NullCar
просто сразу возвратился бы.
В контексте Java, NullCar.speed
атрибут, вероятно, был бы распакованным интервалом. Так установка его к null
не опция. Я, вероятно, скрыл бы атрибут позади средства доступа и имел бы NullCar.getSpeed
повысьте исключение. Любой клиентский код, для которого был бы нужен тест для предотвращения этого исключения, вместо этого переместится в автомобильные классы.
Делегирование всех операций, которые непосредственно зависят от значения скорости, являющегося доступным, является приложением Того, чтобы говорить, не Спрашивает принцип объектно-ориентированного дизайна, упомянутого philippe
Цель Несуществующего объекта состоит в том, чтобы не иметь Нулевые ссылки в коде. Значения, возвращенные методами считывания Несуществующего объекта, зависят от Вашего домена. Нулевая или пустая строка является обычно соответствующей.
Если мы транспонируем шаблон Несуществующего объекта к реальной жизни, что Вы спрашиваете, подобно для выяснения, "какого возраста никто не?".
Возможно, Ваш дизайн может быть улучшен, поскольку Вы, кажется, не следуете за тем, чтобы говорить, не спрашивайте принцип.
Править: шаблон разработки Несуществующего объекта обычно используется, когда объект делегирует поведение к другому объекту (такой как в Стратегии или Шаблонах разработки состояния); как Tom Hawtin - прокомментировал tackline, используйте Объекты Особого случая для возвращающих значения объектов.