Первый контракт по сравнению с последним контрактом
Снизу вверх: подход использует определение проблемы высокого уровня и подразделяет его на подзадачи.
т.е. Договор-последний . Существуют следующие Преимущества для предпочтения стиля разработки Bottom-Up.
- Код первый
- Начальная стадия очень проста в освоении.
Недостатки:
- Обслуживание очень и очень сложное.
- Плотно связанные
Сверху вниз: Подумайте об основных функциях и необходимых деталях.
т.е. контрактного первый . Существуют следующие причины предпочтения стиля разработки сверху вниз.
1. Хрупкость
Последний стиль разработки контракта приводит к тому, что ваш контракт веб-сервиса (WSDL и ваш XSD) генерируется из вашего контракта Java (обычно это интерфейс). Если вы используете этот подход, у вас не будет никаких гарантий того, что контракт будет оставаться неизменным в течение долгого времени. Каждый раз, когда вы изменяете свой Java-код и повторно развертываете его, в контракте веб-службы могут быть последующие изменения.
Кроме того, не все стеки SOAP генерируют один и тот же контракт веб-службы из контракта Java. Это означает, что изменение текущего стека SOAP на другой (по какой-либо причине) также может изменить ваш контракт на веб-сервис.
При изменении контракта на веб-сервисы, пользователи контракта должны будут получить инструкции для получения нового контракта и, возможно, изменить свой код, чтобы учесть любые изменения в контракте.
Чтобы контракт был полезным, он должен оставаться постоянным как можно дольше. В случае изменения договора вам нужно будет связаться со всеми пользователями вашего сервиса и дать им указание получить новую версию договора.
2. Производительность
Когда Java автоматически преобразуется в XML, невозможно быть уверенным в том, что передается по сети. Объект может ссылаться на другой объект, который ссылается на другой и т. Д. В конце концов, половина объектов в куче вашей виртуальной машины может быть преобразована в XML, что приведет к снижению времени отклика.
При использовании контракта в первую очередь вы явно описываете, куда и куда отправляется XML, и, таким образом, убедитесь, что это именно то, что вы хотите.
3. Повторное использование
Определение вашей схемы в отдельном файле позволяет вам повторно использовать этот файл в различных сценариях.
4. Versioning
Даже если контракт должен оставаться постоянным как можно дольше, его иногда нужно менять. В Java это обычно приводит к появлению нового интерфейса Java, такого как AirlineService2, и (новой) реализации этого интерфейса. Конечно, старая служба должна быть сохранена, потому что могут быть клиенты, которые еще не мигрировали.
Если использовать контракт сначала, у нас может быть более слабая связь между контрактом и реализацией. Такая более слабая связь позволяет нам реализовать обе версии контракта в одном классе.