Вопрос о шаблоне разработки несуществующего объекта

Вы можете использовать такие услуги, как twilio. Они предоставляют APis и функции обратного вызова. https://www.twilio.com/sms/api

Вы можете использовать этот рабочий процесс.

  1. Вы генерируете токен 'ABC' вместе с уникальным идентификатором и сохраняете его в удаленном хранилище данных с помощью облачной службы или своего пользовательского веб-приложения. Вы можете использовать облачные функции Google с Firebase или Amazon Lamda в качестве облачного сервиса.

  2. Облачная функция или ваше веб-приложение отправит twilio запрос на отправку токена пользователю с помощью SMS

  3. Пользователь получает токен «ABC» и вводит его в поле приложения.

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

  5. Приложение перейдет к авторизованному разделу страницы.

5
задан abatishchev 5 July 2012 в 07:41
поделиться

3 ответа

Насколько я понял это, идея состоит в том, что значение несуществующего объекта не максимально близко ни к "чему". Это, к сожалению, означает, что необходимо определить его сами. Как пример я лично использую, "" когда я не могу передать пустую строку, число несуществующего объекта для меня-1 (главным образом, потому что по умолчанию большинство последовательностей базы данных запускается в 1, и мы используем последовательности для объекта id:s много, таким образом-1 мертвая дешевая распродажа, это - несуществующий объект), со списками/картами/наборами, которые это Collections.EMPTY_SET, EMPTY_MAP или EMPTY_LIST и т. д. и т. п. Если у меня есть пользовательский класс, я должен создать несуществующий объект из, я удаляю все фактические данные из него и вижу, где это берет меня, и затем примените то, что я просто упомянул, пока это не "пусто".

Таким образом, Вы действительно не "знаете", какое значение возвратиться по умолчанию, просто необходимо решить это собой.

4
ответ дан 18 December 2019 в 12:02
поделиться

что Вы делаете, когда объекты, которые могут быть несуществующими, имеют методы считывания и используются в Вашем коде? Как Вы знаете который значение возвратиться по умолчанию?

Как Вы знаете который классы реализовать? Это - вопрос о дизайне, он зависит от приложения.

Вообще говоря, цель шаблона NullObject состоит в том, чтобы поддерживать Условное выражение Замены с рефакторингом Полиморфизма в особом случае, где условное выражение является сравнением с нулевым значением языка программирования.

Корректная реализация примера в видео потребовала бы делегирования driveCar метод к Car классы. SlowCar и FastCar классы выполнили бы цикл, по-видимому, посредством общей реализации в базовом классе, и NullCar просто сразу возвратился бы.

В контексте Java, NullCar.speed атрибут, вероятно, был бы распакованным интервалом. Так установка его к null не опция. Я, вероятно, скрыл бы атрибут позади средства доступа и имел бы NullCar.getSpeed повысьте исключение. Любой клиентский код, для которого был бы нужен тест для предотвращения этого исключения, вместо этого переместится в автомобильные классы.

Делегирование всех операций, которые непосредственно зависят от значения скорости, являющегося доступным, является приложением Того, чтобы говорить, не Спрашивает принцип объектно-ориентированного дизайна, упомянутого philippe

3
ответ дан 18 December 2019 в 12:02
поделиться

Цель Несуществующего объекта состоит в том, чтобы не иметь Нулевые ссылки в коде. Значения, возвращенные методами считывания Несуществующего объекта, зависят от Вашего домена. Нулевая или пустая строка является обычно соответствующей.

Если мы транспонируем шаблон Несуществующего объекта к реальной жизни, что Вы спрашиваете, подобно для выяснения, "какого возраста никто не?".

Возможно, Ваш дизайн может быть улучшен, поскольку Вы, кажется, не следуете за тем, чтобы говорить, не спрашивайте принцип.

Править: шаблон разработки Несуществующего объекта обычно используется, когда объект делегирует поведение к другому объекту (такой как в Стратегии или Шаблонах разработки состояния); как Tom Hawtin - прокомментировал tackline, используйте Объекты Особого случая для возвращающих значения объектов.

8
ответ дан 18 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: