Дизайн для использования макета связи - PullRequest
2 голосов
/ 26 октября 2009

У меня есть простое приложение с пользовательским интерфейсом с внутренним соединением, из которого я получаю данные. Теперь, во время разработки, я не хотел бы подключаться к бэкэнду, так как он замедляет меня. Итак, у меня есть некоторые локально хранимые данные, и я «насмехаюсь» над соединением, чтобы вернуть локально сохраненные данные вместо того, чтобы делать вызов на сервере.

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

Есть много способов сделать это, я полагаю:

  • Получение соединения от фабрика (или через внедрение зависимости) и установка флага, который возвращает локальное соединение
  • Поддержание файл свойств, где я установил 'local = true' или что-то подобное который возвращает локальное соединение.

Есть ли другие способы достижения этого?

Ответы [ 4 ]

1 голос
/ 26 октября 2009

Не усложняйте вещи. Существует очевидная необходимость возвращать разные реализации - так что используйте фабрику. Затем фабрика должна знать, какую реализацию создать. Вы можете использовать свойство или даже получить статическую логическую переменную.

1 голос
/ 26 октября 2009

Есть две половины проблемы:

  1. Откуда приложение получает соединение? Фабрика? Умные аннотации управления DI? ...
  2. Как источник соединения определяет, какой использовать, смоделировать или, возможно, несколько разных вариантов live (Prod, ST, Dev и т. Д.)

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

Что касается любых свойств / конфигураций, которые могут быть использованы, это зависит от типа вашей среды. Вы не говорите, является ли ваше автономное приложение Java или чем-то, что выполняется в среде JEE. Если последнее, то использование ресурсов JNDI может быть полезным.

0 голосов
/ 26 октября 2009

Вы изучили структуру внедрения зависимостей?

Я использую Google Guice , чтобы решить эту проблему.

0 голосов
/ 26 октября 2009

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

/etc/hosts

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

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