Каков наилучший способ ограничения строк в объектно-ориентированной модели? - PullRequest
0 голосов
/ 10 марта 2011

Мне нужно выбрать метод моделирования для документирования расширений существующей коллекции веб-сервисов.Метод / инструмент должен использоваться техническими бизнес-аналитиками.Существующий API определен в XML-схеме.XML-схема хорошо работает с одним исключением.Возьмем класс PaymentInformation в качестве примера.Один партнер может принять Visa и Mastercard в качестве примера.Другой также исключает Амекс.Мы хотим иметь возможность расширить платежную информацию для PartnerA и PartnerB.

class PaymentInformation
   method // CASH,CC
   ccNumber
   ccType  // MC,V,AMEX

class PaymentInformationPartnerA
   method // CASH,CC,PAYPAL
   ccNumber
   ccType // MC, V

Проблема с XML-схемой заключается в том, что для применения ограничения к классу требуется переопределить весь тип.Это похоже на кошмар обслуживания.UML, похоже, не поддерживает ограниченные строки (шаблоны, длину и т. Д.).Какой инструмент / метод вы рекомендуете для этого?У нас есть предпочтение, но не требование для Eclipse IDE.

Ответы [ 2 ]

0 голосов
/ 11 марта 2011

Не делай этого. Если PaymentInformationPartnerA расширяет PaymentInformation, то для всех случаев использования PaymentInformation вы можете использовать PaymentInformationPartnerA, тогда как вы говорите, что для некоторых случаев использования (присвоение значения ccType из "AMEX") оно не является ковариантным.

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

0 голосов
/ 11 марта 2011

Вы можете добавить ограничение UML или условие для вашего класса. Это либо графическая заметка, либо непосредственно информация, закодированная вручную в метамодели UML. Модель UML уже является XMI 2.1, поэтому похожа на XML, но использует определенные правила.

...